导航:首页 > 源码编译 > 网站ip定位城市源码

网站ip定位城市源码

发布时间:2023-01-14 09:14:46

php的 ip 定位,经纬度至少精确到镇,附上源码和详解

ip定位一般对于电脑来说的,精确到镇有点难,淘宝的ip api服务,只能精确到区,或者市

手机的话,你需要获取位置,位置会因为手机质量的好坏,偏差很大,苹果和诺基亚手机定位很准,安卓各种机型,各种偏差,使用手机定位的是,html5有获取定位的方法,然后得到经纬度,发到网络地图 api,获取更精确的地址,

ip定位想要那么精确,有点难,你得找个好点的ip库服务,达到你要的精读就行

Ⅱ 如何实现网站根据访问者的ip自动跳转到相应地方区域

不知道你用的是什么编程语言,给你贴个PHP的吧,网上有很多源码可以自己找一下

<?php
//返回当前IP的城市字符串
function convertip($ip) {
//IP数据文件路径
$dat_path = 'QQWry.Dat';

//检查IP地址
if(!preg_match("/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/", $ip)) {
return 'IP Address Error';
}
//打开IP数据文件
if(!$fd = @fopen($dat_path, 'rb')){
return 'IP date file not exists or access denied';
}

//分解IP进行运算,得出整形数
$ip = explode('.', $ip);
$ipNum = $ip[0] * 16777216 + $ip[1] * 65536 + $ip[2] * 256 + $ip[3];

//获取IP数据索引开始和结束位置
$DataBegin = fread($fd, 4);
$DataEnd = fread($fd, 4);
$ipbegin = implode('', unpack('L', $DataBegin));
if($ipbegin < 0) $ipbegin += pow(2, 32);
$ipend = implode('', unpack('L', $DataEnd));
if($ipend < 0) $ipend += pow(2, 32);
$ipAllNum = ($ipend - $ipbegin) / 7 + 1;

$BeginNum = 0;
$EndNum = $ipAllNum;

//使用二分查找法从索引记录中搜索匹配的IP记录
while($ip1num>$ipNum || $ip2num<$ipNum) {
$Middle= intval(($EndNum + $BeginNum) / 2);

//偏移指针到索引位置读取4个字节
fseek($fd, $ipbegin + 7 * $Middle);
$ipData1 = fread($fd, 4);
if(strlen($ipData1) < 4) {
fclose($fd);
return 'System Error';
}
//提取出来的数据转换成长整形,如果数据是负数则加上2的32次幂
$ip1num = implode('', unpack('L', $ipData1));
if($ip1num < 0) $ip1num += pow(2, 32);

//提取的长整型数大于我们IP地址则修改结束位置进行下一次循环
if($ip1num > $ipNum) {
$EndNum = $Middle;
continue;
}

//取完上一个索引后取下一个索引
$DataSeek = fread($fd, 3);
if(strlen($DataSeek) < 3) {
fclose($fd);
return 'System Error';
}
$DataSeek = implode('', unpack('L', $DataSeek.chr(0)));
fseek($fd, $DataSeek);
$ipData2 = fread($fd, 4);
if(strlen($ipData2) < 4) {
fclose($fd);
return 'System Error';
}
$ip2num = implode('', unpack('L', $ipData2));
if($ip2num < 0) $ip2num += pow(2, 32);

//没找到提示未知
if($ip2num < $ipNum) {
if($Middle == $BeginNum) {
fclose($fd);
return 'Unknown';
}
$BeginNum = $Middle;
}
}

$ipFlag = fread($fd, 1);
if($ipFlag == chr(1)) {
$ipSeek = fread($fd, 3);
if(strlen($ipSeek) < 3) {
fclose($fd);
return 'System Error';
}
$ipSeek = implode('', unpack('L', $ipSeek.chr(0)));
fseek($fd, $ipSeek);
$ipFlag = fread($fd, 1);
}

if($ipFlag == chr(2)) {
$AddrSeek = fread($fd, 3);
if(strlen($AddrSeek) < 3) {
fclose($fd);
return 'System Error';
}
$ipFlag = fread($fd, 1);
if($ipFlag == chr(2)) {
$AddrSeek2 = fread($fd, 3);
if(strlen($AddrSeek2) < 3) {
fclose($fd);
return 'System Error';
}
$AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0)));
fseek($fd, $AddrSeek2);
} else {
fseek($fd, -1, SEEK_CUR);
}

while(($char = fread($fd, 1)) != chr(0))
$ipAddr2 .= $char;

$AddrSeek = implode('', unpack('L', $AddrSeek.chr(0)));
fseek($fd, $AddrSeek);

while(($char = fread($fd, 1)) != chr(0))
$ipAddr1 .= $char;
} else {
fseek($fd, -1, SEEK_CUR);
while(($char = fread($fd, 1)) != chr(0))
$ipAddr1 .= $char;

$ipFlag = fread($fd, 1);
if($ipFlag == chr(2)) {
$AddrSeek2 = fread($fd, 3);
if(strlen($AddrSeek2) < 3) {
fclose($fd);
return 'System Error';
}
$AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0)));
fseek($fd, $AddrSeek2);
} else {
fseek($fd, -1, SEEK_CUR);
}
while(($char = fread($fd, 1)) != chr(0)){
$ipAddr2 .= $char;
}
}
fclose($fd);

//最后做相应的替换操作后返回结果
if(preg_match('/http/i', $ipAddr2)) {
$ipAddr2 = '';
}
$ipaddr = "$ipAddr1 $ipAddr2";
$ipaddr = preg_replace('/CZ88.Net/is', '', $ipaddr);
$ipaddr = preg_replace('/^s*/is', '', $ipaddr);
$ipaddr = preg_replace('/s*$/is', '', $ipaddr);
if(preg_match('/http/i', $ipaddr) || $ipaddr == '') {
$ipaddr = 'Unknown';
}

return $ipaddr;
}

//查找字符串
function findstr($str, $substr)
{
$m = strlen($str);
$n = strlen($substr );
if ($m < $n) return false ;
for ($i=0; $i <=($m-$n+1); $i ++){
$sub = substr( $str, $i, $n);
if ( strcmp($sub, $substr) == 0) return true;
}
return false ;
}
?>

<?php
$Clientip=$_SERVER["REMOTE_ADDR"];
$ClientSity=convertip($Clientip);
if (findstr($ClientSity,"北京")){
//out.print("beijing");
Header("Location: http://www.qq.com");
}else{
//out.print("false beijing");
Header("Location: http://www.163.com");
}
?>

Ⅲ 谁能把我个忙啊.给我弄个asp的ip定位城市的代码啊,急急急

用Qq的ip地址库可以实现

Ⅳ 求asp获取用户IP地区的源码

去下个动网的IP地址库
用下面这个函数
表名改成你的就可以

Function Fn_GetIPAddr(Ipaddr)
'根据IP地址得到所在地区
dim tmpSQL,rs,tmpIpAddr
dim str1,str2,str3,str4,num
If isnumeric(left(Ipaddr,2)) Then
If Ipaddr= "127.0.0.1 " Then Ipaddr= "192.168.0.1 "
str1=left(Ipaddr,instr(Ipaddr, ". ")-1)
Ipaddr=mid(Ipaddr,instr(Ipaddr, ". ")+1)
str2=left(Ipaddr,instr(Ipaddr, ". ")-1)
Ipaddr=mid(Ipaddr,instr(Ipaddr, ". ")+1)
str3=left(Ipaddr,instr(Ipaddr, ". ")-1)
str4=mid(Ipaddr,instr(Ipaddr, ". ")+1)
If isNumeric(str1)=0 Or isNumeric(str2)=0 Or isNumeric(str3)=0 Or isNumeric(str4)=0 Then

Else
num=cint(str1)*256*256*256+cint(str2)*256*256+cint(str3)*256+cint(str4)-1
tmpSQL = "select top 1 Country from ipdata where StartIP <= ' "&num& " ' and EndIP > = ' "&num& " ' "
'Response.Write(tmpSQL)
set rs = conn.execute(tmpSQL)
if rs.bof and rs.eof then
Fn_GetIPAddr = "未知地址 "
else
Fn_GetIPAddr = rs( "Country ")
end if
'end if
end if
Else
Fn_GetIPAddr = "无效IP "
End If
End Function

Ⅳ 求网站显ip源码

你网络一下:

显示来访IP地址免费代码很多免费调用的接口非常方便

但是网络知道的部分管理实在脑残缺钙,只要发了不认识的代码就以广告为由屏蔽

甚至哪天心情不爽,失恋,没吃饱,都会封贴,禁止帮人...

所以建议你自己搜一下刚才的关键字,不便之处还望谅解...望采纳

或许一会这个回复也没了...揭短总是容易引起他们不爽...

java中怎样写通过IP查到城市地址的代码

你去下载一个纯真ip查询的软件 然后把里边的地址导出来 是一个txt的文件
里边的格式是这样的
1.4.5.0 1.4.63.255 福建省 电信
1.4.64.0 1.4.127.255 广东省 电信
1.4.128.0 1.8.255.255 福建省 电信
前2个是ip 最后一个是地址
......然后就不用我多说了把........

Ⅶ 如何用C#编写代码 查询出本机所在的城市

用Webbrowser去访问htt+p://ww+w.ip138.c+om/(把+替换为空),然后获取webbrowser的源代码就可以获取到你本机的城市、IP等信息。

Ⅷ 易语言取ip所在地源码

易语言论坛有取ip所在地源码。
http://bbs.eyuyan.com/read.php?tid=313153

Ⅸ php怎么实现像百姓网,58同城网,赶集网,城市IP定位 代码更好!

城市ip定位?如果要用ip来知道地址的话,必须有ip和地址的对应库,现在很多DNS服务器可以做到这一点。所以这个还是需要有一定的基础数据才行 。如果是手机定位的话,主要是通过和邻近的几个信号站,返回的延迟时间不同,推算出来的。

Ⅹ 易语言取ip地址及地理位置源码,希望朋友帮我下

供参考:
.版本 2
.支持库 internet

.程序集 窗口程序集1

.子程序 _按钮1_被单击
.局部变量 分割, 文本型, , "0"

分割 = 分割文本 (到文本 (HTTP读文件 (“ht=tp:=//=fw.q=q.c=o=m/=i=pa=ddress”)), #引号, )'请把=号删除
编辑框1.内容 = 分割 [2] + “-” + 分割 [6] + 分割 [8]

阅读全文

与网站ip定位城市源码相关的资料

热点内容
gcc编译vi文件 浏览:61
安卓连airpods怎么找耳机 浏览:925
加密货币转账教程 浏览:227
程序员小灰hashmap 浏览:836
国语pdf版 浏览:182
少儿编程作品美丽的小房子 浏览:970
服务器卡在网页上怎么办 浏览:54
用python自制编译器 浏览:951
android分享新浪微博客户端 浏览:26
系统中服务器在哪里下载地址 浏览:1001
新a4安卓手机怎么投屏 浏览:173
pdftoemf 浏览:886
java接口可以实现接口吗 浏览:59
vb编程10个随机函数 浏览:21
程序员个人简介100 浏览:772
土木工程师算法工程师 浏览:92
javaexcel导入oracle 浏览:880
如何设置异地服务器 浏览:882
为什么安卓手机蓝牙耳机不会弹窗 浏览:547
linuxf77编译器安装教程 浏览:949