2

IP アドレスでホスト名を取得する方法のサンプルがたくさん見つかりました。LAN 内のホストの IP アドレスを取得するにはどうすればよいですか?

4

6 に答える 6

4

これを試して

public static void DoGetHostAddresses(string hostname)
{

   IPAddress[] ips;

    ips = Dns.GetHostAddresses(hostname);

    Console.WriteLine("GetHostAddresses({0}) returns:", hostname);

    foreach (IPAddress ip in ips)
    {
        Console.WriteLine("    {0}", ip);
    }
}

http://msdn.microsoft.com/en-us/library/system.net.dns.gethostaddresses.aspxからこれを入手しました

于 2012-08-13T09:42:06.797 に答える
2

PC から IP アドレス (V4) を取得する場合の簡単なコードを次に示します。

このライブラリをクラスにインポートします

using System.Net;

これらの変数を初期化してコードに宣言します。これらには、ホスト名、IP アドレス、およびホスト アドレスの配列が含まれます。

string HostName = Dns.GetHostName().ToString();

IPAddress[] IpInHostAddress = Dns.GetHostAddresses(HostName);

string IPV4Address = IpInHostAddress[1].ToString(); //Default IPV4Address. This might be the ip address you need to retrieve

string IPV6Address = IpInHostAddress[0].ToString(); //Default Link local IPv6 Address

コマンド プロンプトを開き、「ipconfig」と入力して Enter キーを押します。完了したら、文字列 IPV4Address が PC の IPv4Address と一致するかどうかを確認できます。

于 2016-06-29T02:19:42.790 に答える
1

古い Dns.GetHostAddresses の代わりに Dns.GetHostEntry(hostname) を使用します。

于 2013-08-26T09:28:03.697 に答える
1

マシンの名前を知っている限り、使用できますDns.GetHostAddresses。ネットワーク DNS はそれを LAN コンピュータとして認識し、適切な IP を返す必要があります。

于 2012-08-13T09:39:00.077 に答える
0

Windows管理クラスを使用してこれを行うことができます。これは、同じドメインにあるリモートマシンでも機能します(ただし、これを機能させるためにセキュリティまたはポリシー設定を有効または無効にする必要があるかどうかはわかりません)。例えば:

public List<NetworkAdapter> GetAdapterList()
{
    ManagementClass mgmt = new ManagementClass("Win32_NetworkAdapterConfiguration ");
    ManagementObjectCollection moc = mgmt.GetInstances();
    List<NetworkAdapter> adapters = new List<NetworkAdapter>();

    // Search for adapters with IP addresses
    foreach(ManagementObject mob in moc)
    {
        string[] addresses = (string[])mob.Properties["IPAddress"].Value;
        if (null == addresses)
        {
            continue;
        }

        NetworkAdapter na = new NetworkAdapter();
        na.Description = (string) mob.Properties["Description"].Value;
        na.MacAddress = (string) mob.Properties["MACAddress"].Value;
        na.IPAddresses = addresses;
        adapters.Add(na);
    }
    return adapters;
}

リモートマシンにアクセスするには、代わりに次のような管理クラスを作成します。

ManagementClass mgmt = new ManagementClass
    (\\\\servername\\root\\cimv2:Win32_NetworkAdapterConfiguration);

このアプローチでは、DNSに登録されているIPよりも多くのIPを取得できる可能性があります。

于 2012-08-13T09:48:44.723 に答える
0

これがどのように行われているかの優れた例です: http://www.codeproject.com/Articles/854/How-To-Get-IP-Address-Of-A-Machine

于 2012-08-13T09:38:28.590 に答える