この回答でコード スニペットを見つけました:コンソール アプリケーションで IP アドレスを取得する
using System;
using System.Net;
namespace ConsoleTest
{
class Program
{
static void Main()
{
String strHostName = string.Empty;
// Getting Ip address of local machine...
// First get the host name of local machine.
strHostName = Dns.GetHostName();
Console.WriteLine("Local Machine's Host Name: " + strHostName);
// Then using host name, get the IP address list..
IPHostEntry ipEntry = Dns.GetHostEntry(strHostName);
IPAddress[] addr = ipEntry.AddressList;
for (int i = 0; i < addr.Length; i++)
{
Console.WriteLine("IP Address {0}: {1} ", i, addr[i].ToString());
}
Console.ReadLine();
}
}
}
このコードをローカルで実行してコンピューターの IP アドレスを取得すると、問題なく動作します。私がやろうとしているのは、コードを使用してネットワーク上のサーバーの IP アドレスを取得することです。だから基本的に私は strHostName = Dns.GetHostName(); を置き換えてみました。with strHostName = "myServerName"; ただし、返される IP は 1 つだけです。サーバー自体でプログラムを実行すると、そのサーバーに割り当てられたすべての IP が取得されます。目標は、私のコンピューターでプログラムを実行し、データベース テーブルからサーバー名を読み取って、100 以上のサーバーの IP アドレスを取得することです。各サーバーにログオンして、各サーバーでプログラムを実行して IP アドレスを取得する必要がないようにしています。
興味深いことに、「www.google.com」のコードは正常に機能します。このサーバーは関連しているのでしょうか、それともセキュリティの問題でしょうか?
データベースからデータを取得する前に、1 つのサーバーでコードを動作させる必要があります:) ありがとう!