15

サーバー(接続したいPC)のIPアドレスを動的に取得するにはどうすればよいですか?

4

5 に答える 5

17

System.Dns.GetHostEntryを使用して、名前を IP アドレスに解決できます。

于 2009-06-22T22:42:10.403 に答える
10
IPHostEntry Host = Dns.GetHostEntry(DNSNameString);
DoSomethingWith(Host.AddressList);
于 2009-06-22T22:47:11.470 に答える
2

以下の方法を使用すると、正しく解決できます

 public static bool GetResolvedConnecionIPAddress(string serverNameOrURL, out IPAddress resolvedIPAddress)
        {
            bool isResolved = false;
            IPHostEntry hostEntry = null;
            IPAddress resolvIP = null;
            try
            {
                if (!IPAddress.TryParse(serverNameOrURL, out resolvIP))
                {
                    hostEntry = Dns.GetHostEntry(serverNameOrURL);

                    if (hostEntry != null && hostEntry.AddressList != null && hostEntry.AddressList.Length > 0)
                    {
                        if (hostEntry.AddressList.Length == 1)
                        {
                            resolvIP = hostEntry.AddressList[0];
                            isResolved = true;
                        }
                        else
                        {
                            foreach (IPAddress var in hostEntry.AddressList)
                            {
                                if (var.AddressFamily == AddressFamily.InterNetwork)
                                {
                                    resolvIP = var;
                                    isResolved = true;
                                    break;
                                }
                            }
                        }
                    }
                }
                else
                {
                    isResolved = true;
                }
            }
            catch (Exception ex)
            {

            }
            finally
            {
                resolvedIPAddress = resolvIP;
            }

            return isResolved;
        }
于 2012-08-15T07:13:18.110 に答える
0

カオスの回答に対するコメントに基づいて、サーバーの IP アドレスは必要なく、クライアントの IP アドレスが必要です。その場合は、質問を修正してください...答えは HttpRequest.UserHostAddress になります。

于 2009-06-22T23:27:32.513 に答える
0

あなたはnslookupをしたいと思っています。

次に例を示します。

http://www.c-sharpcorner.com/UploadFile/DougBell/NSLookUpDB00112052005013753AM/NSLookUpDB001.aspx

于 2009-06-22T22:42:30.343 に答える