打开一个php网页出现2个ip,php根据ip地址查地区
自己以前做过一个程序 根据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地址查地区相关推荐
- 网络 打开一个浏览器网页都要什么协议
DNS协议:将域名解析为IP.我们输入域名,将其发送给"DNS服务器",就会返回相应的IP.本机在解析域名时首先从hosts文件中查找,如果查找到就直接使用,如果找不到才会从DNS ...
- 计算机网络:小明在家打开一个网址过程细致版(DNS缓存、DNS查询、TCP/IP协议、ARP协议、HTML渲染)
文章目录 前言 一.DNS缓存 浏览器缓存 操作系统缓存 路由器缓存 ISP缓存 二.DNS查询 1.发起DNS查询 2.DNS服务器设计结构 3.DNS服务器查询步骤 4.ARP请求 5.封装TCP ...
- 打开一个网页的全过程
1.概要:从用户在浏览器输入域名开始,到web页面加载完毕,这个过程叫做网页加载过程,个人总结,长期更新 2.分析:打开一个网页,浏览器会因为页面上的css/js/image等静态资源多次发起连接请求 ...
- python爬虫如何从一个页面进入另一个页面-爬虫入门(一)——如何打开一个网页...
做了一段时间自然语言处理的项目,体会到了爬虫的乐趣,甚至一度产生了学好爬虫真的可以为所欲为的美妙错觉.因此决定开个坑,记录自己的爬虫学习过程,也督促自己学习更高深的爬虫姿势.目前我只用到了最基础的爬虫 ...
- python网址在浏览器能打开_Python - Flask - 在默认浏览器中打开一个网页
第一部分负责抓取网页并提取一些信息并将其插入到数据库中. 第二部分是resposible使用数据库来呈现这些信息. 两部分共享数据库.在第二部分中,我使用Flask框架将信息显示为具有格式,样式等的h ...
- IE每打开一个网页跳出网页处理
问:最近,我的电脑一打开网页,网页的最上面就会出现两横类似广告一样的东西,怎么弄也弄不掉,打开QQ空间时,就会跳出来百度的网页,那跳出来的百度的网页上面也有同样的两横广告,每次按"日志&qu ...
- 几组超神奇的网页应用代码要你在IE浏览器任意打开一个网站,然后在浏览器上输入如下代码神奇的代码,可随意修改复制页面内容!
只要你在IE浏览器任意打开一个网站,然后在浏览器上输入如下代码神奇的代码,可随意修改复制页面内容! 神奇的代码 1 javascript:R=0; x1=.1; y1=.05; x2=.25; y2= ...
- 如何在网页中打开一个本地桌面程序
如何在网页中打开一个本地桌面程序 转载 2015年11月26日 20:30:14 1473 通过网页链接打开本地本地程序,想到最多的方法就是通过activex控件,但这里介绍一个通过注册新协议来打开本 ...
- 搜狗浏览器打开时会自动打开一个网页
原因不清楚. 解决方案: 按f1 或者 搜狗浏览器右上角三横-更多工具-浏览器修复 修复后即可解决 每次打开搜狗浏览器时它都会自动打开一个网页 的问题.
- 用Java打开一个网页
BareBonesBrowserLaunch.java 从网上无意间看到的一个工具类,意思是打开一个URL,在不同的操作系统都通用. 1.使用 很简单: Java代码 1 String url = ...
最新文章
- java英文字符串大小写转换 必须使用_【Java基础】之字符串大小写转换不利用API....
- FragmentPagerAdapter与FragmentStatePagerAdapter使用详解与区别
- js new Date()不带时分秒时,时间变了 问题解决
- Go 语言编程 — 编码规范指南
- mysql limit不要1_切记!MySQL中ORDER BY与LIMIT 不要一起用,有大坑
- #地形剖面图_高中地理——每日讲1题(地形剖面图、河流水的补给、河流丁坝)...
- vboxdrv.sh failed modprobe vboxdrv failed. Please use 'dmesg' to find out why
- Serverless 终结 Kubernetes?
- android 支付宝月账单 统计图_@三明人 支付宝年度账单来了!今天的你晒账单了吗?...
- 老人机java游戏模拟器_java模拟器_Java手机游戏模拟器
- java 无锁并发_高并发情况下怎样尽量实现无锁编程
- 用Python教你画一棵绝美碎花树~学会就能送给喜欢的人啦
- SLAM论文笔记---- FlowNet及FlowNet2.0
- html背景对联效果恭贺新春,恭贺新春的对联
- java 随机字母_如何用java随机生成一个字母
- 腾讯IM登陆时候闪退java.lang.UnsatisfiedLinkError
- 剑指offer109:开密码锁
- 召回率(rec),准确率(acc),精确率(pre),F1值
- manual 离线手册 韩顺平php_PHP官方中文手册2017最新完整版 带用户注释 chm
- 关于JsBarcode.all.js
热门文章
- 6m缓存和8m缓存差距_i7-9700和i7-9700K性能差距多大?i7-9700和i7-9700K区别对比评测...
- ContextCapture(CC)/Smart3D集群搭建笔记
- CANape a2l文件的编辑教程
- 最新白白iApp手册开源-iApp源码 非常牛逼
- ojdbc6手动装载
- 背包九讲(超详细 :算法分析 + 问题分析 + 代码分析)
- NOIP2017普及组复赛 解题分析
- 如何用c语言批量替换字符串,[C/C++]急速批量替换字符串
- 继电器接触器控制系统应用拓展实践——“玩转”双电机
- 【发表案例】JCR1区计算机测量类SCI,仅3个月录用