检测网站从哪里打开

Detect where website is opened from

抱歉,这可能有点含糊,但如何根据打开网站的位置显示不同的组织徽标。例如,该组织希望在南非打开网站时显示其南非官方徽标,而在肯尼亚或加纳打开时显示另一个官方徽标。

网站是否必须托管在多台服务器上...想不出任何其他可能的方式吗?

要先找到国家/地区,您需要找到 Ipaddress

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

使用IP地址可以找到如下位置

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

输出为 XML 格式,它将包含 countryName 标签

我会把它作为评论。因为我没有足够的声誉,所以我发布作为答案。

这个 link 将有助于检测国家并根据您的逻辑根据国家更改徽标。


正在添加 link 的内容,因为 link 可能会过期。

您可以使用一种可用的 Web 服务来将传入请求与国家/地区相匹配。

否则您可能决定获取 MaxMind 数据库文件 (GeoLite Country),在您的应用程序中读取该文件并执行匹配。因此,您将独立于第三方服务,仅定期更新数据库文件。

另请查看类似问题:

Geolocation web service recommendations

Know a good IP address Geolocation Service?

简而言之,市场上有很多供应商,他们正在跟踪 geolocation,其中之一是 google API。

https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR_API_KEY

您可以生成自己的 API_KEY

希望post对您有所帮助。 :)