如何获取用户的地理位置

wen1818 2007-11-21 10:49:23
现在在做一个站点流量统计

遇到一个问题:如何获取访问者的地理位置呢?

如 用户IP为http://210.43.122.122 怎样才能得到如下信息:XXX国xxx省...等信息呢

因为客户想统计不同的区域的访问量

请教各位高手了
...全文
1018 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
gouzhiguo 2007-11-23
  • 打赏
  • 举报
回复
路过
cceon 2007-11-23
  • 打赏
  • 举报
回复
友情顶一下
suyiming 2007-11-22
  • 打赏
  • 举报
回复
楼主如果想要数据库的
可以到我那下载 acc的
http://download.csdn.net/source/285647
sunlovesea 2007-11-21
  • 打赏
  • 举报
回复
学习了~~谢谢楼上的回答
swafboxh 2007-11-21
  • 打赏
  • 举报
回复
路过
zyug 2007-11-21
  • 打赏
  • 举报
回复
百分百的准...
自己收集好了
pciak 2007-11-21
  • 打赏
  • 举报
回复
没规律的,只能通过数据库查的吧
suyiming 2007-11-21
  • 打赏
  • 举报
回复
可以把那个DAT文件升级 这个肯定有误差的
qq22345111 2007-11-21
  • 打赏
  • 举报
回复
是的
只要用户使用的代理上网
获取出先误差可能达80%
springcsc1982 2007-11-21
  • 打赏
  • 举报
回复
获取方法都已经给出来了:
很多获取都不正确
IP地址唯一真的很扯,我知道一个在成都上网的朋友,获取到的IP地址居然是绵阳的!

一定是用了代理,这种方法会造成获取IP的误差
qq22345111 2007-11-21
  • 打赏
  • 举报
回复
获取方法都已经给出来了:
很多获取都不正确
IP地址唯一真的很扯,我知道一个在成都上网的朋友,获取到的IP地址居然是绵阳的!
kaixin110 2007-11-21
  • 打赏
  • 举报
回复
你好,很高兴可以认识你!。
你的意思是:得到这个访问者的位置信息或所在城市,如果我的理解有误,请指出,

目前基本上采用的是使用纯真IP库,然后对其进行核对

你可以在http://download.pchome.net/internet/communications/Oicq/15911.html
下载该IP 数据库

怎么分析这个IP库你可以在网络上,搜索 "纯真IP",可以看到很多关于这个的文章.

最后的结果是:得到IP ,然后核对IP库,得到一个地区名:比如:深圳市南山区

希望我提供的信息对您有帮助。

如果您还有更多疑问可以访问我的网站
http://www.HandanDaily.com



tds__609 2007-11-21
  • 打赏
  • 举报
回复
要有IP数据库~
suyiming 2007-11-21
  • 打赏
  • 举报
回复
还有

#region 获取国家/区域字符串
private string GetFlagStr(long offSet)
{
int flag = 0;
byte[] buff = new Byte[3];
while (1 == 1)
{
//objfs.Seek(offSet,SeekOrigin.Begin);
objfs.Position = offSet;
flag = objfs.ReadByte();
if (flag == 1 || flag == 2)
{
objfs.Read(buff, 0, 3);
if (flag == 2)
{
this.countryFlag = 2;
this.endIpOff = offSet - 4;
}
offSet = Convert.ToInt64(buff[0].ToString()) + Convert.ToInt64(buff[1].ToString()) * 256 + Convert.ToInt64(buff[2].ToString()) * 256 * 256;
}
else
{
break;
}
}
if (offSet < 12)
return " ";
objfs.Position = offSet;
return GetStr();
}
#endregion


#region GetStr
private string GetStr()
{
byte lowC = 0;
byte upC = 0;
string str = "";
byte[] buff = new byte[2];
while (1 == 1)
{
lowC = (Byte)objfs.ReadByte();
if (lowC == 0)
break;
if (lowC > 127)
{
upC = (byte)objfs.ReadByte();
buff[0] = lowC;
buff[1] = upC;
System.Text.Encoding enc = System.Text.Encoding.GetEncoding("GB2312");
str += enc.GetString(buff);
}
else
{
str += (char)lowC;
}
}
return str;
}
#endregion


#region 获取IP地址
public string IPLocation()
{
this.QQwry();
return this.country + this.local;
}
public string IPLocation(string dataPath, string ip)
{
this.dataPath = dataPath;
this.ip = ip;
this.QQwry();
return this.country + this.local;
}
//调用方法
protected void GetIP()
{
pweb.info.pweb_info pwebinfo = new pweb.info.pweb_info();
string ipaddress = pwebinfo.ClietIp.ToString();
IPScaner objScan = new IPScaner();
string ip = ipaddress;
objScan.DataPath =ConfigurationManager.AppSettings["UpLoadFile"] + "/" + "QQWry.Dat";
objScan.IP = ip;
string addre = objScan.IPLocation();
string err = objScan.ErrMsg;
this.Label1.Text = "您本机IP地址:" + addre;
}
lw065 2007-11-21
  • 打赏
  • 举报
回复
IP库
shawn_yang 2007-11-21
  • 打赏
  • 举报
回复
找ip对应地区表,网上有一堆呢
suyiming 2007-11-21
  • 打赏
  • 举报
回复
可以先判断 是否代理
雪狐 2007-11-21
  • 打赏
  • 举报
回复
只要有代理,肯定有误差,不知道高手们有没有解决的办法。。。

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧