Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DNSGethodEntry获取错误的IP地址_C#_Sockets - Fatal编程技术网

C# DNSGethodEntry获取错误的IP地址

C# DNSGethodEntry获取错误的IP地址,c#,sockets,C#,Sockets,我有以下问题。我尝试通过socket.Bind()函数创建套接字。但它总是呕吐。我猜这是因为它从 IPHostEntry ipHe=Dns.GetHostEntry(Dns.GetHostName()) 功能。我认为这个问题是由我的静态IP造成的Ipconfig/all显示我的Ip类似于109.90.xxx.xxx,程序获得的Ip是192.168.xxx.xxx 它抛出的错误是“请求的地址在其上下文中无效”可能有多个ip地址与主机关联。尝试在返回的ip地址列表中循环 foreach (IPAdd

我有以下问题。我尝试通过
socket.Bind()函数创建套接字。但它总是呕吐。我猜这是因为它从

IPHostEntry ipHe=Dns.GetHostEntry(Dns.GetHostName())

功能。我认为这个问题是由我的静态IP造成的
Ipconfig/all
显示我的Ip类似于
109.90.xxx.xxx
,程序获得的Ip是
192.168.xxx.xxx


它抛出的错误是“请求的地址在其上下文中无效”

可能有多个ip地址与主机关联。尝试在返回的ip地址列表中循环

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

Dns.GetHostEntry
查询Dns,因此可能是错误的。在命令提示符下,
nslookup{your hostname}
返回什么

基本上,没有什么可以阻止DNS和您的本地机器失步。这可能是故意的,也可能表明存在问题,具体取决于您的本地网络要求和配置


为了独立于DNS获取本地IP地址,那么您需要直接查询接口:查看
System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()
,然后可以对每个接口枚举并调用
GetIPProperties()
,它同时返回多播和单播IP地址。

您的家庭网络中可能有路由器吗?或者看起来您有一个与LAN的VPN网络连接…'nslookup默认服务器:cns1.cw.net地址:141.1.1.1'如何定义我的程序应该使用的接口?我通过GetAllNetworkInterfaces()获得了一堆接口,但似乎它使用了正确的接口,但只是得到了错误的地址只有一个ip 192.168.xxx.xxx
foreach (IPAddress ip in ipHe.AddressList)
{
    Console.WriteLine("    {0}", ip);
}