gpt4 book ai didi

c# - 在 ASP.NET 页面中查找客户端位置

转载 作者:行者123 更新时间:2023-11-30 13:52:54 31 4
gpt4 key购买 nike

如何在我的 ASP.NET 页面中找到客户端位置?事实上,我使用了 System.Globalization.RegionInfo.CurrentRegion,但它显示的是控制面板中的设置。那么我可以使用任何方法找到确切的位置吗?

最佳答案

并不是说它会给你 100% 的准确率,但你可以使用 hostip.info

他们提供了一个 API,可以为您提供通过 HTTP 请求传递给他们的 IP 地址的位置。您可以使用 WebClient 对象调用 API 并解析结果。 Scott Hanselmanthis blog article 中有一个很好的例子(我下面的例子是基于他的文章)。 hostip.info 的数据库基于社区贡献 IP 位置的开放项目...因此不能保证正确。

对于初学者,您需要确定客户端 IP 地址,如下所示:

string ipaddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

一旦获得 IP,就可以创建 WebClient 对象并调用 API...

API 调用示例:

string r;
using (var w = new WebClient())
{
r = w.DownloadString(String.Format("http://api.hostip.info/?ip={0}&position=true", ipaddress));
}

结果将是看起来像这样的 XML:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<HostipLookupResultSet version="1.0.0" xmlns="http://www.hostip.info/api" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.hostip.info/api/hostip-1.0.0.xsd">
<gml:description>This is the Hostip Lookup Service</gml:description>
<gml:name>hostip</gml:name>
<gml:boundedBy>
<gml:Null>inapplicable</gml:Null>
</gml:boundedBy>
<gml:featureMember>
<Hostip>
<gml:name>Sugar Grove, IL</gml:name>
<countryName>UNITED STATES</countryName>
<countryAbbrev>US</countryAbbrev>
<!-- Co-ordinates are available as lng,lat -->
<ipLocation>
<gml:PointProperty>
<gml:Point srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">
<gml:coordinates>-88.4588,41.7696</gml:coordinates>
</gml:Point>
</gml:PointProperty>
</ipLocation>
</Hostip>
</gml:featureMember>
</HostipLookupResultSet>

关于c# - 在 ASP.NET 页面中查找客户端位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1238180/

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