关于用户登录以后,显示登录地点问题(结帖率100%)
最近在做一个网站,但是要有一个功能,就是用户登录以后显示用户登录的地点,比如说 “张三”登录以后显示,“您好您现在的位置是江苏苏州市”,请问如何
做到呢?请牛人们给小弟弟好好上上课!感激不尽! 查询登录地点 --------------------编程问答-------------------- 根据客户端IP来确定位置 --------------------编程问答-------------------- 添加web引用
http://webservice.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?op=getCountryCityByIp
IpAddressSearchWebService webService = new IpAddressSearchWebService();
string[] strArea = webService.getCountryCityByIp(strIP);
return strArea[1]; --------------------编程问答-------------------- 获取客户端IP,判断下客户位置就好了! --------------------编程问答-------------------- +1 --------------------编程问答--------------------
//这个是获取客户的IP
string user_IP = "";
if (Request.ServerVariables["HTTP_VIA"] != null)
{
user_IP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
else
{
user_IP = Request.ServerVariables["REMOTE_ADDR"].ToString();
}
//下面是把这个IP到这个接口数据库进行转换为实际的地址
string url_str = "";
url_str = "http://whois.pconline.com.cn/ip.jsp?ip=" + user_IP;
WebRequest request = WebRequest.Create(url_str);
WebResponse response = request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
url_str = reader.ReadToEnd();
reader.Close();
reader.Dispose();
response.Close();
Label1.Text=url_str;//这个就是获得位置了 --------------------编程问答-------------------- http://whois.pconline.com.cn/ip.jsp这个接口永久免费的吗?? --------------------编程问答--------------------
2楼给的webservice我用了很久了。 --------------------编程问答-------------------- 根据客户端IP来确定位置 --------------------编程问答--------------------
首先感谢楼主!小弟试了一下楼主的代码,但是Label1显示的是“本机地址”四个字。不知道哪里错了! --------------------编程问答--------------------
首先小弟表示感谢,但是可以说的具体点吗?或者多附点代码,让小弟看看,小弟菜鸟,还望赐教! --------------------编程问答--------------------
--------------------编程问答--------------------
添加web引用
http://webservice.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?op=getCountryCityByIp
IpAddressSearchWebService webService = new IpAddressSearchWebService();
string[] strArea = webService.getCountryCityByIp(strIP);
return strArea[1];
首先小弟表示感谢,但是可以说的具体点吗?或者多附点代码,让小弟看看,小弟菜鸟,还望赐教!
我想点击对我有用的,点击错了
为什么我用查出来的的地址是“中国移动”呢? --------------------编程问答-------------------- 贴一段代码。用新浪的接口:
if (context.Request.ServerVariables["HTTP_VIA"] != null) //得到穿过代理服务器的ip地址
{
UserIP = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
else
{
UserIP = context.Request.ServerVariables["REMOTE_ADDR"].ToString();
}
string json = new HttpClient("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=" + UserIP).GetString();
if (StringPlus.IsNotNull(json))
{
JsonData jd = JsonMapper.ToObject(json);
if (jd["ret"].IsInt && (int)jd["ret"] == 1)
{
string province = jd["province"].ToString();
string city = jd["city"].ToString();
string isp = jd["isp"].ToString();
if (province == city)
{
address = province + " " + isp;
}
else
{
address = province + city + " " + isp;
}
}
} --------------------编程问答--------------------
贴一段代码。用新浪的接口:
if (context.Request.ServerVariables["HTTP_VIA"] != null) //得到穿过代理服务器的ip地址
{
UserIP = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
else
{
UserIP = context.Request.ServerVariables["REMOTE_ADDR"].ToString();
}
string json = new HttpClient("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=" + UserIP).GetString();
if (StringPlus.IsNotNull(json))
{
JsonData jd = JsonMapper.ToObject(json);
if (jd["ret"].IsInt && (int)jd["ret"] == 1)
{
string province = jd["province"].ToString();
string city = jd["city"].ToString();
string isp = jd["isp"].ToString();
if (province == city)
{
address = province + " " + isp;
}
else
{
address = province + city + " " + isp;
}
}
}
我试了一下,但是报错!不知道是怎么回事! --------------------编程问答-------------------- 要嘛,你有自己的IP和省份城市地址对应表。要嘛你调用第三方这类的接口来做。
这个没啥好说的。
--------------------编程问答-------------------- 引用“首先感谢楼主!小弟试了一下楼主的代码,但是Label1显示的是“本机地址”四个字。不知道哪里错了!”
======================
你在本机运行,当然显示“本机地址”,你把程序放到服务器,然后你再访问,就显示地理位置了。 --------------------编程问答-------------------- 你直接在地址栏输入这个地址:
http://whois.pconline.com.cn/ip.jsp?ip=202.105.179.122
显示的结果是:广东省珠海市 电信IDC机房
你不想要"电信IDC机房",可以截止字符串,就会得到广东省珠海市 --------------------编程问答-------------------- --------------------编程问答--------------------
贴一段代码。用新浪的接口:
if (context.Request.ServerVariables["HTTP_VIA"] != null) //得到穿过代理服务器的ip地址
{
UserIP = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
else
{
UserIP = context.Request.ServerVariables["REMOTE_ADDR"].ToString();
}
string json = new HttpClient("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=" + UserIP).GetString();
if (StringPlus.IsNotNull(json))
{
JsonData jd = JsonMapper.ToObject(json);
if (jd["ret"].IsInt && (int)jd["ret"] == 1)
{
string province = jd["province"].ToString();
string city = jd["city"].ToString();
string isp = jd["isp"].ToString();
if (province == city)
{
address = province + " " + isp;
}
else
{
address = province + city + " " + isp;
}
}
}
我试了一下,但是报错!不知道是怎么回事!
你把context.去掉,直接用Request吧。这个context是在ashx文件中用到的
补充:.NET技术 , ASP.NET