49

接続されたソケットのリモート IP アドレスを確認するにはどうすればよいですか?

アクセスできる RemoteEndPoint オブジェクトと、その AddressFamily メンバーがあります。

これらを利用してIPアドレスを見つけるにはどうすればよいですか?

ありがとう!

現在試行中

IPAddress.Parse( testSocket.Address.Address.ToString() ).ToString();

localhost エンドポイントの 127.0.0.1 ではなく 1.0.0.127 を取得します。これは正常ですか?

4

4 に答える 4

87

http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.remoteendpoint.aspx

その後、IPEndPoint..::.Address メソッドを呼び出してリモート IPAddress を取得し、IPEndPoint..::.Port メソッドを呼び出してリモート ポート番号を取得できます。

リンクからの詳細(かなり修正されました):

Socket s;
        
IPEndPoint remoteIpEndPoint = s.RemoteEndPoint as IPEndPoint;
IPEndPoint localIpEndPoint = s.LocalEndPoint as IPEndPoint;

if (remoteIpEndPoint != null)
{
    // Using the RemoteEndPoint property.
    Console.WriteLine("I am connected to " + remoteIpEndPoint.Address + " on port number " + remoteIpEndPoint.Port);
}

if (localIpEndPoint != null)
{
    // Using the LocalEndPoint property.
    Console.WriteLine("My local IpAddress is " + localIpEndPoint.Address + " connected on port number " + localIpEndPoint.Port);
}
于 2009-12-14T23:12:34.470 に答える
7
string ip = ((IPEndPoint)(testsocket.RemoteEndPoint)).Address.ToString();
于 2015-09-02T13:00:36.853 に答える
5

RemoteEndPoint はプロパティで、その型はSystem.Net.EndPointから継承されたSystem.Net.IPEndPointです。

IPEndPoint のmembersを見ると、Addressプロパティがあることがわかります。

于 2009-12-14T23:17:57.160 に答える