Avatar billede f-bs Nybegynder
11. august 2010 - 18:06 Der er 8 kommentarer

IP-adresse

Hej,

Jeg ønsker at få ip adressen ud på de fysiske netkort i en maskine.
Jeg har forsøgt rigtig meget efterhånden men har næsten kastet håndklædet i ringen.
Jeg får _alle_ ip adresser ud fra maskinen, og hvis maskinen er en vista eller windows 7, er der en del virtuelle kort.

Er der nogen som kender en metode til at få ip adresserne ud af de fysiske netkort?

Jeg benytter .NET 2.0 C#

/f-bs
Avatar billede arne_v Ekspert
11. august 2010 - 18:10 #1
Hvad giver:

using System;
using System.Net.NetworkInformation;

namespace EE
{
    public class MainClass
    {
        public static void Main(string[] args)
        {
            NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
            foreach(NetworkInterface nic in nics)
            {
                if(nic.GetPhysicalAddress().ToString().Length > 0 &&
                  nic.GetIPProperties().UnicastAddresses.Count > 0)
                {
                    Console.WriteLine(nic.GetPhysicalAddress() + " " + nic.GetIPProperties().UnicastAddresses[0].Address);
                }
            }
        }
    }
}

?
Avatar billede f-bs Nybegynder
11. august 2010 - 18:26 #2
Det giver mig alt andet end ip adressen på de fysiske NICs.
Jeg får hvad der ligner mine mac adresser og en IPv6 adresse.
Avatar billede janus_007 Nybegynder
11. august 2010 - 19:47 #3
Prøv
System.Net.IPAddress[] localIPs = System.Net.Dns.GetHostAddresses(System.Net.Dns.GetHostName());

og så hvis du vil have en ip-adresse på formen xxx.xxx.xxx.xxx, så lav en regex.

Find regex'en her. http://janusknudsen.dk/post/Regular-Expression-MatchCollection-OfType-and-Linq.aspx
Avatar billede f-bs Nybegynder
11. august 2010 - 20:10 #4
Det lader til at være et skridt i den rigtige retning, har netop fået:
http://peecee.dk/upload/view/261632

Så skal jeg blot have ipv6 adresserne kasseret. :)
Avatar billede janus_007 Nybegynder
11. august 2010 - 21:10 #5
Så skal blot læse mit indlæg igen og hæfte dig ekstra meget ved regex. Så er du i mål :)
Avatar billede Syska Mester
11. august 2010 - 21:13 #6
Måske nemmere med:
http://msdn.microsoft.com/en-us/library/system.net.ipaddress.addressfamily.aspx

Da det fortæller om det er en ipv4 eller ipv6 :-)
Avatar billede janus_007 Nybegynder
11. august 2010 - 22:26 #7
Super... den kendte jeg ikke :)
Avatar billede Syska Mester
11. august 2010 - 22:47 #8
Man lærer så længe man lever ... jeg må jo også give lidt igen, efter de guldkorn du har givet mig :-)

mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester