何らかの理由で、C# の socket.RemoteEndPoint がデフォルト ゲートウェイのアドレスを返し始めました。以前は機能していましたが、コードが変更されていないことはわかっています。ログが十分にさかのぼらないため、いつ発生し始めたのかわからないため、このサーバーに何が起こったのかわかりません。すべてが正常に機能しているようです。リモートIPを取得できなくなっただけです。
誰がこれを引き起こす可能性があるか考えていますか?
関連するコードは次のとおりです。
public void startClientListening(string ipString, int port)
{
IPAddress ip = IPAddress.Parse(ipString);
// Create the listening socket...
clientListenerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint ipLocal = new IPEndPoint(ip, port);
// Bind to local IP Address...
clientListenerSocket.Bind(ipLocal);
// Start listening...
clientListenerSocket.Listen(32);
// Create the call back for any client connections...
clientListenerSocket.BeginAccept(onClientConnect, clientListenerSocket);
}
private void onClientConnect(IAsyncResult asyn)
{
Socket workerSocket = clientListenerSocket.EndAccept(asyn);
workerSocket.NoDelay = true;
//This returns 192.168.1.1 rather than the remoteIp
string remoteIp = ((IPEndPoint)workerSocket.RemoteEndPoint).Address.ToString();
}