Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.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# IP地址为127.0.0.1的地理位置错误_C#_Asp.net_Geolocation - Fatal编程技术网

C# IP地址为127.0.0.1的地理位置错误

C# IP地址为127.0.0.1的地理位置错误,c#,asp.net,geolocation,C#,Asp.net,Geolocation,好的,所以我试着实现这个 它将输出显示为:- 127.0.0.1预留ZZ 这个“保留”和“ZZ”到底是什么?它应该显示为“印度在” IP地址是本地主机的IP地址。好的,但是国家名称和国家代码呢?为什么它们不能正确显示?我需要在代码中更改什么?127.0.0.1是一个保留的IP地址,代表本地主机(运行代码的计算机)。这是运行TCP/IP的每台计算机的“有效”IP地址 IP查找需要真实的IP地址才能正常工作 关于国家代码-它可能是一个2个字符的国家ISO代码(请参阅),因此您需要将代码翻译为正确的国

好的,所以我试着实现这个

它将输出显示为:-

127.0.0.1预留ZZ

这个“保留”和“ZZ”到底是什么?它应该显示为“印度在”


IP地址是本地主机的IP地址。好的,但是国家名称和国家代码呢?为什么它们不能正确显示?我需要在代码中更改什么?

127.0.0.1是一个保留的IP地址,代表本地主机(运行代码的计算机)。这是运行TCP/IP的每台计算机的“有效”IP地址

IP查找需要真实的IP地址才能正常工作


关于国家代码-它可能是一个2个字符的国家ISO代码(请参阅),因此您需要将代码翻译为正确的国家
ZZ
不在表中,表示没有国家/地区。

127.0.0.1
被称为环回地址,是您的系统用来与自身进行有效对话的地址。因此,没有与该IP地址关联的国家/地区。。。它在每个系统中无处不在


如果您将代码发布到web上,您将获得更合适的结果,因为每个访问系统都将使用公共IP地址访问您的服务器。

当您在家测试时,服务器和用户是一体的(您的PC)。因此,您不能期望它显示国家,因为IIS的IP地址是自地址

您的代码似乎很好。您还可以使用免费的ASP.NET支持主机在线试用您的网站。有很多像这样的

关于你问题的编辑部分,如果你为每个国家使用不同版本的网站,那么使用切换就不会更好了

switch(iso3166TwoLetterCode.ToUpper())
{
    case "IN" : Response.Redirect("www.mysite.in");
    case "FR" : Response.Redirect("www.mysite.fr");
    ...
    Default : Response.Redirect("www.mysite.in");
}

我认为它看起来确实更整洁

如何以我想要的方式显示国家名称?我知道它是本地主机的IP地址,因为我在本地主机上运行我的网站。在本地主机上运行它也不会显示国家名称???@happysoul-您需要在2个字符的ISO国家代码表中查找它。查看我的更新答案。呃..什么表格?我刚刚从那个网站上删除了那个IP地址扩展dll文件,并将其包含在我的项目中。那个网站上没有可删除的数据库。sry,但我对这一切都是新手,所以不知道它是如何工作的。请提供帮助。。thnx@happysoul-你看过我链接的页面了吗?它列出了2个字符的代码以及它们所属的国家。您可以在应用程序中使用它将代码转换为国家名称。@happysoul-可能
ipAddress.country()。但是,您需要使用除
127.0.0.1
之外的IP地址才能工作。哦,好的。请您查看代码并告诉我它是否会显示国家名称好吗??我的意思是代码正确吗?thnx您需要使用
Request.UserHostAddress
获取用户主机(请求页面的系统)的IP地址,这可能会有所帮助。否则代码是正确的,我相信IPAddressExtensions包含了您需要的所有数据。远程地址呢??你也不应该用这个吗??顺便说一句,“HTTP_X_FORWARDED_FOR”什么也不返回..不知道为什么,所以我假设IPAddressExtensions正在使用一些数据库,我不需要自己创建任何表..是吗?@Peter Mortensen:谢谢,你本来可以编辑的,我不介意:)谢谢你的回答..我就试试开关箱..哦,我刚想到一个问题。。在这种情况下,如果我需要同时检查“in”和“in”怎么办?我是否需要编写两个单独的案例,或者可以使用or等编写一个案例??您只能对布尔类型变量而不是字符串使用or运算符。我建议使用toupper或tolower…参见上面的编辑。像这样吗?。。。如果(iso3166TwoLetterCode.ToUpper()){}..它将做什么?检查它是否大写??那么什么是abt小写??sry不知道如何实现当您使用toUpper()时,您要确保即使它是“in”,也会转换为“in”。通过这种方式,你可以用一个单独的案例来检查“in”和“in”。是的,我知道了。刚刚从互联网上研究了abt。thnx:)可能的重复