自己以前做过一个程序 根据discuz里面的ip查询改的

/**

* ip地址所属地区计算

* 修改自 discuz

* 使用dicuz tinyipdata数据文件

* 将一些英文提示修改为汉字

* $is_simple true的话显示到市 false显示到网通电信等等

******/

function convertip($ip,$is_simple=true,$ipfile='include/data/ip。

dat') {

$return = '';

if( !file_exists($ipfile) ) $ipfile = '。。/'。$ipfile;

if(preg_match("/^d{1,3}。

d{1,3}。d{1,3}。d{1,3}$/", $ip)) {

$iparray = explode('。', $ip);

if($iparray[0] == 10 || $iparray[0] == 127 || ($iparray[0] == 192 && $iparray[1] == 168) || ($iparray[0] == 172 && ($iparray[1] >= 16 && $iparray[1] 255 || $iparray[1] > 255 || $iparray[2] > 255 || $iparray[3] > 255) {

return 'ERR';

} elseif($is_simple) {

return change_simply_area(convertip_tiny($ip, $ipfile));

}

else {

return convertip_tiny($ip, $ipfile);

}

}

}

/**

* 从ip文件得到ip所属地区

*

* 过滤掉了具体的位置(如 网通/电信/**网吧) 基本到市

***/

function convertip_tiny($ip, $ipdatafile) {

static $fp = NULL, $offset = array(), $index = NULL;

$ipdot = explode('。

', $ip);

$ip = pack('N', ip2long($ip));

$ipdot[0] = (int)$ipdot[0];

$ipdot[1] = (int)$ipdot[1];

if($fp === NULL && $fp = @fopen($ipdatafile, 'rb')) {

$offset = unpack('Nlen', fread($fp, 4));

$index = fread($fp, $offset['len'] - 4);

} elseif($fp == FALSE) {

return '- Invalid IP data file';

}

$length = $offset['len'] - 1028;

$start = unpack('Vlen', $index[$ipdot[0] * 4] 。

$index[$ipdot[0] * 4 1] 。 $index[$ipdot[0] * 4 2] 。 $index[$ipdot[0] * 4 3]);

for ($start = $start['len'] * 8 1024; $start = $ip) {

$index_offset = unpack('Vlen', $index{$start 4} 。

$index{$start 5} 。 $index{$start 6} 。 "x0");

$index_length = unpack('Clen', $index{$start 7});

break;

}

}

fseek($fp, $offset['len'] $index_offset['len'] - 1024);

if($index_length['len']) {

return mb_convert_encoding(fread($fp, $index_length['len']),'utf-8','gb2312'); //将读出的gb编码数据转成utf-8并返回

} else {

return '未知';

}

}

function change_simply_area($area) {

$tmp = explode(' ',$area); //过滤掉一些具体信息

return $tmp[0];

}

里面那个ipfile你可以去下载一个discuz 在 ipdata目录里面有wry。

dat的文件就是了 其实这个就是网上用的最多的那个纯真版数据库 很多显示ip的qq用的也是那个

这两个函数的原型参考 discuz 里面 includemisc。func。php

共同学习进步 :)。

全部

打开一个php网页出现2个ip,php根据ip地址查地区相关推荐

  1. 网络 打开一个浏览器网页都要什么协议

    DNS协议:将域名解析为IP.我们输入域名,将其发送给"DNS服务器",就会返回相应的IP.本机在解析域名时首先从hosts文件中查找,如果查找到就直接使用,如果找不到才会从DNS ...

  2. 计算机网络:小明在家打开一个网址过程细致版(DNS缓存、DNS查询、TCP/IP协议、ARP协议、HTML渲染)

    文章目录 前言 一.DNS缓存 浏览器缓存 操作系统缓存 路由器缓存 ISP缓存 二.DNS查询 1.发起DNS查询 2.DNS服务器设计结构 3.DNS服务器查询步骤 4.ARP请求 5.封装TCP ...

  3. 打开一个网页的全过程

    1.概要:从用户在浏览器输入域名开始,到web页面加载完毕,这个过程叫做网页加载过程,个人总结,长期更新 2.分析:打开一个网页,浏览器会因为页面上的css/js/image等静态资源多次发起连接请求 ...

  4. python爬虫如何从一个页面进入另一个页面-爬虫入门(一)——如何打开一个网页...

    做了一段时间自然语言处理的项目,体会到了爬虫的乐趣,甚至一度产生了学好爬虫真的可以为所欲为的美妙错觉.因此决定开个坑,记录自己的爬虫学习过程,也督促自己学习更高深的爬虫姿势.目前我只用到了最基础的爬虫 ...

  5. python网址在浏览器能打开_Python - Flask - 在默认浏览器中打开一个网页

    第一部分负责抓取网页并提取一些信息并将其插入到数据库中. 第二部分是resposible使用数据库来呈现这些信息. 两部分共享数据库.在第二部分中,我使用Flask框架将信息显示为具有格式,样式等的h ...

  6. IE每打开一个网页跳出网页处理

    问:最近,我的电脑一打开网页,网页的最上面就会出现两横类似广告一样的东西,怎么弄也弄不掉,打开QQ空间时,就会跳出来百度的网页,那跳出来的百度的网页上面也有同样的两横广告,每次按"日志&qu ...

  7. 几组超神奇的网页应用代码要你在IE浏览器任意打开一个网站,然后在浏览器上输入如下代码神奇的代码,可随意修改复制页面内容!

    只要你在IE浏览器任意打开一个网站,然后在浏览器上输入如下代码神奇的代码,可随意修改复制页面内容! 神奇的代码 1 javascript:R=0; x1=.1; y1=.05; x2=.25; y2= ...

  8. 如何在网页中打开一个本地桌面程序

    如何在网页中打开一个本地桌面程序 转载 2015年11月26日 20:30:14 1473 通过网页链接打开本地本地程序,想到最多的方法就是通过activex控件,但这里介绍一个通过注册新协议来打开本 ...

  9. 搜狗浏览器打开时会自动打开一个网页

    原因不清楚. 解决方案: 按f1 或者 搜狗浏览器右上角三横-更多工具-浏览器修复 修复后即可解决 每次打开搜狗浏览器时它都会自动打开一个网页 的问题.

  10. 用Java打开一个网页

    BareBonesBrowserLaunch.java 从网上无意间看到的一个工具类,意思是打开一个URL,在不同的操作系统都通用. 1.使用 很简单: Java代码  1 String url = ...

最新文章

  1. java英文字符串大小写转换 必须使用_【Java基础】之字符串大小写转换不利用API....
  2. FragmentPagerAdapter与FragmentStatePagerAdapter使用详解与区别
  3. js new Date()不带时分秒时,时间变了 问题解决
  4. Go 语言编程 — 编码规范指南
  5. mysql limit不要1_切记!MySQL中ORDER BY与LIMIT 不要一起用,有大坑
  6. #地形剖面图_高中地理——每日讲1题(地形剖面图、河流水的补给、河流丁坝)...
  7. vboxdrv.sh failed modprobe vboxdrv failed. Please use 'dmesg' to find out why
  8. Serverless 终结 Kubernetes?
  9. android 支付宝月账单 统计图_@三明人 支付宝年度账单来了!今天的你晒账单了吗?...
  10. 老人机java游戏模拟器_java模拟器_Java手机游戏模拟器
  11. java 无锁并发_高并发情况下怎样尽量实现无锁编程
  12. 用Python教你画一棵绝美碎花树~学会就能送给喜欢的人啦
  13. SLAM论文笔记---- FlowNet及FlowNet2.0
  14. html背景对联效果恭贺新春,恭贺新春的对联
  15. java 随机字母_如何用java随机生成一个字母
  16. 腾讯IM登陆时候闪退java.lang.UnsatisfiedLinkError
  17. 剑指offer109:开密码锁
  18. 召回率(rec),准确率(acc),精确率(pre),F1值
  19. manual 离线手册 韩顺平php_PHP官方中文手册2017最新完整版 带用户注释 chm
  20. 关于JsBarcode.all.js

热门文章

  1. 6m缓存和8m缓存差距_i7-9700和i7-9700K性能差距多大?i7-9700和i7-9700K区别对比评测...
  2. ContextCapture(CC)/Smart3D集群搭建笔记
  3. CANape a2l文件的编辑教程
  4. 最新白白iApp手册开源-iApp源码 非常牛逼
  5. ojdbc6手动装载
  6. 背包九讲(超详细 :算法分析 + 问题分析 + 代码分析)
  7. NOIP2017普及组复赛 解题分析
  8. 如何用c语言批量替换字符串,[C/C++]急速批量替换字符串
  9. 继电器接触器控制系统应用拓展实践——“玩转”双电机
  10. 【发表案例】JCR1区计算机测量类SCI,仅3个月录用