gpt4 book ai didi

c# - 2个不同的IP地址

转载 作者:太空宇宙 更新时间:2023-11-03 20:00:47 26 4
gpt4 key购买 nike

我的程序中有两种方法来检索计算机的 IP 地址。

第一名

public string GetIP1()
{
//using System.Net.Sockets;
return Dns.GetHostEntry(Dns.GetHostName()).AddressList.FirstOrDefault(ip => ip.AddressFamily == AddressFamily.InterNetwork).ToString();
}

第二名

public string GetIP2()
{
//using System.IO;
String direction = "";
try
{
WebRequest request = WebRequest.Create("http://checkip.dyndns.org/");
using (WebResponse response = request.GetResponse())
using (StreamReader stream = new StreamReader(response.GetResponseStream()))
{
direction = stream.ReadToEnd();
}

//Search for the ip in the html
int first = direction.IndexOf("Address: ") + 9;
int last = direction.LastIndexOf("</body>");
direction = direction.Substring(first, last - first);
}
catch(Exception){ }
return direction;
}

第一个代码返回一个看起来像 10.xx.xx.x 的 IP,第二个代码返回 IP 地址,例如 121.xx.xx.xx

为什么这两种方法的输出不同?

最佳答案

显然,您位于某些 NAT 之后。

因此,通过运行第一个代码,您将收到您的内部网络地址,第二个代码为您提供真实的(外部)IP 地址,您的网络可以从该地址访问 Internet。

因为第二种方法只是调用外部网站确定您的IP,而该网站只能确定真实IP地址,不能确定内部IP。

关于c# - 2个不同的IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28631549/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com