但民间有一个数据库是用来解决这一问题,就是纯真数据库,
目前百度等很多网站也使用了这个库,
原理是通过网友自己填写所在地或公司资料与自己的IP来对数据库进行完善
,由于多数的IP是动态分配的,所以准确性不能保证如果使用固定IP的公司有人填了公司资料,你就有可能查得到。
具体可以在百度直接输入IP,或在使用了这个库的网站比如 123cha.com 来输入IP反查。
扩展资料:
IP是Internet Protocol(网际互连协议)的缩写,是TCP/IP体系中的网络层协议。
设计IP的目的是提高网络的可扩展性:
一是解决互联网问题,实现大规模、异构网络的互联互通;
二是分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。
根据端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。
IP地址是用来识别网络上的设备,因此,IP地址是由网络地址与主机地址两部分所组成。
网络地址
网络地址可用来识别设备所在的网络,网络地址位于IP地址的前段。
当组织或企业申请IP地址时,所获得的并非IP地址,而是取得一个唯一的、能够识别的网络地址。
同一网络上的所有设备,都有相同的网络地址。
IP路由的功能是根据IP地址中的网络地址,决定要将IP信息包送至所指明的那个网络。
主机地址
主机地址位于IP地址的后段,可用来识别网络上设备。
同一网络上的设备都会有相同的网络地址,而各设备之间则是以主机地址来区别。
由于各个网络的规模大小不一,大型的网络应该使用较短的网络地址,以便能使用较多的主机地址;
反之,较小的网络则应该使用较长的网络地址。
为了符合不同网络规模的需求,IP在设计时便根据网络地址的长度,设计与划分IP地址。
<?php//第一步:透过代理获取用户真实的IP地址
$theip=getip()
function getIP()
{
static $realip
if (isset($_SERVER)){
if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
$realip = $_SERVER["HTTP_X_FORWARDED_FOR"]
} else if (isset($_SERVER["HTTP_CLIENT_IP"])) {
$realip = $_SERVER["HTTP_CLIENT_IP"]
} else {
$realip = $_SERVER["REMOTE_ADDR"]
}
} else {
if (getenv("HTTP_X_FORWARDED_FOR")){
$realip = getenv("HTTP_X_FORWARDED_FOR")
} else if (getenv("HTTP_CLIENT_IP")) {
$realip = getenv("HTTP_CLIENT_IP")
} else {
$realip = getenv("REMOTE_ADDR")
}
}
return $realip
}
//第二步:通过读取IP地址库,找到所属地区
//假设表名为ip,字段有begin(起始),end(结束),area(地区代号)
$dblink=@mysql_connect("数据库服务器名","数据库用户名","数据库密码")
$dbselect=@mysql_select_db(数据库名)
if (!$dbselect){
die("数据库无法读取")
}
$result=mysql_query("select * from `ip` where `begin`<=`$theip` and `end`>=`$theip`")
$num=mysql_num_rows($result)
if($num>0){
$info=mysql_fetch_array($result)
$page=$info['area']
else{
$page='default' //如果IP不在数据库中,则用缺省的页面
}
//第三步:转到相关页面,如代号为"js",转到"js.php"页面
$page.='.html' //后缀你可以自己取
echo "<script language=\"javascript\">window.location.replace(\"$page\")</script>"
?>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)