php中获取指定IP的物理地址的代码(正则表达式)


Posted in PHP onJune 23, 2011

自己搭建IP数据库占资源,而且更新不便,何不使用现成的IP查询呢?下面自己写了个获取IP物理地址的PHP代码(有一定的瑕疵,请高手不吝赐教)

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<title></title> 
<meta charset="UTF-8" /> 
<meta name="author" content="" /> 
<meta name="keywords" content="" /> 
<meta name="description" content="" /> 
</head> 
<body> 
<?php 
$ipAddr = "218.75.124.100"; 
$ip138Addr = "http://www.ip138.com/ips8.asp?ip=".$ipAddr."&action=2"; 
$contents = file_get_contents($ip138Addr); 
$pattern = "/\<li.+?\/li\>/"; 
$string = $contents; 
preg_match_all($pattern,$string,$addrArray); 
$num = count($addrArray[0]); 
for($i = 0;$i<$num;$i++){ 
echo $addrArray[0][$i] = mb_convert_encoding($addrArray[0][$i],"UTF-8", "GB2312"); 
switch($i) { 
case 0:$str = "<li>本站主数据:</li>";break; 
case 1:$str = "<li>参考数据一:</li>";break; 
case 2:$str = "<li>参考数据二:</li>";break; 
case 3:$str = "<li>参考数据三:</li>";break; 
case 4:$str = "<li>参考数据四:</li>";break; 
case 5:$str = "<li>参考数据六:</li>";break; 
case 6:$str = "<li>参考数据七:</li>";break; 
} 
$addrArray[0][$i] = trim($addrArray[0][$i],$str); 
} 
$addrArray[0][0] = trim($addrArray[0][0],":"); 
echo "<pre>"; 
print_r($addrArray); 
echo "</pre>"; 
?> 
</body> 
</html>

这段代码采用访问http://www.ip138.com后使用正则表达式进行截取部分内容,其中正则表达式是自己写的。
php中获取指定IP的物理地址的代码(正则表达式)
开始还好,下面的处理结果出现了乱码,如果把$str(去除字符串首尾的标识)定义的字符串就没有了乱码;而且再加一个单独的去除“:”的语句,就可以实现无乱码的现象,不知道为什么了……
正则表达式——获取指定IP的物理地址(二) chinaz数据
上一个IP获取的结果不是很完善,究其原因是因为ip138的IP解析应对国外的地址时不是很详细,所以又重新写了个用Chianz.com的代码。
<!DOCTYPE html> 
<html lang="en"> 
<head> 
<title></title> 
<meta charset="UTF-8" /> 
<meta name="author" content="" /> 
<meta name="keywords" content="" /> 
<meta name="description" content="" /> 
</head> 
<body> 
<?php 
$ipAddr = "4.4.44.4"; 
$ipChinazAddr = "http://tool.chinaz.com/IP/?IP=".$ipAddr; 
$contents = file_get_contents($ipChinazAddr); 
$pattern = "/\=\=\>\>.+\<\/strong\>\<br \/\>/"; 
$string = $contents; 
preg_match_all($pattern,$string,$addrArray); 
$num = count($addrArray[0]); 
$pattern = "/(==>>).+(==>>\s)/"; 
for($i = 0;$i<$num;$i++){ 
$addrArray[0][$i] = preg_replace($pattern,"",$addrArray[0][$i]); 
} 
echo "<pre>"; 
print_r($addrArray); 
echo "</pre>"; 
?> 
</body> 
</html>

结果还令人满意

php中获取指定IP的物理地址的代码(正则表达式)

php中获取指定IP的物理地址的代码(正则表达式)

以上是本人写的两个获取IP物理地址的代码,作为一个初学者,没事的时候写写简单的代码也还是一件挺有意思的事。但是毕竟是一个初学者,不能更好的注意安全性、空间利用率、时间效率等问题,还望各位留下你的足迹,小弟谢了

PHP 相关文章推荐
一键删除顽固的空文件夹 软件下载
Jan 26 PHP
phpexcel导出excel的颜色和网页中的颜色显示不一致
Dec 11 PHP
如何用php获取程序执行的时间
Jun 09 PHP
php 中文字符串首字母的获取函数分享
Nov 04 PHP
一漂亮的PHP图片验证码实例
Mar 21 PHP
PHP获取文件的MD5值并判断是否被修改的例子
Jun 19 PHP
php CI框架插入一条或多条sql记录示例
Jul 29 PHP
PHP统计当前在线用户数实例讲解
Oct 21 PHP
PHP常用工具类大全附全部代码下载
Dec 07 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
Oct 25 PHP
PHP实现的分解质因数操作示例
Aug 01 PHP
PHP7修改的函数
Mar 09 PHP
PHP学习笔记 (1) 环境配置与代码调试
Jun 19 #PHP
php开发过程中关于继承的使用方法分享
Jun 17 #PHP
php设计模式  Command(命令模式)
Jun 17 #PHP
php学习笔记 面向对象中[接口]与[多态性]的应用
Jun 16 #PHP
php smarty 二级分类代码和模版循环例子
Jun 16 #PHP
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
Jun 16 #PHP
php中session_unset与session_destroy的区别分析
Jun 16 #PHP
You might like
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
2015/02/07 PHP
8个PHP数组面试题
2015/06/23 PHP
php+js实现裁剪任意形状图片
2018/10/31 PHP
Aster vs KG BO3 第一场2.19
2021/03/10 DOTA
setInterval 和 setTimeout会产生内存溢出
2008/02/15 Javascript
jQuery UI Autocomplete 体验分享
2012/02/14 Javascript
JS判断当前日期是否大于某个日期的实现代码
2012/09/02 Javascript
Jquery 跨域访问 Lightswitch OData Service的方法
2013/09/11 Javascript
js判断为空Null与字符串为空简写方法
2014/02/24 Javascript
JavaScript日期类型的一些用法介绍
2015/03/02 Javascript
深入探究JavaScript中for循环的效率问题及相关优化
2016/03/13 Javascript
详解javascript跨浏览器事件处理程序
2016/03/27 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
2017/04/20 Javascript
JS+canvas动态绘制饼图的方法示例
2017/09/12 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
2017/09/16 Javascript
JavaScript EventEmitter 背后的秘密 完整版
2018/03/29 Javascript
Emberjs 通过 axios 下载文件的方法
2019/09/03 Javascript
vue中渲染对象中属性时显示未定义的解决
2020/07/31 Javascript
python 实现归并排序算法
2012/06/05 Python
python中使用urllib2伪造HTTP报头的2个方法
2014/07/07 Python
Python远程桌面协议RDPY安装使用介绍
2015/04/15 Python
python自动化脚本安装指定版本python环境详解
2017/09/14 Python
Django学习笔记之ORM基础教程
2018/03/27 Python
Python 实现网页自动截图的示例讲解
2018/05/17 Python
Python 日期的转换及计算的具体使用详解
2020/01/16 Python
Pytorch上下采样函数--interpolate用法
2020/07/07 Python
无需压缩软件,用python帮你操作压缩包
2020/08/17 Python
用python进行视频剪辑
2020/11/02 Python
css3的动画特效之动画序列(animation)
2017/12/22 HTML / CSS
自荐信如何“自荐”
2013/10/24 职场文书
文体活动总结范文
2014/05/05 职场文书
工作失误检讨书(3篇)
2014/10/11 职场文书
放弃继承权公证书
2015/01/23 职场文书
人民调解协议书
2016/03/21 职场文书
2019年七夕情人节浪漫祝福语大全!
2019/08/08 职场文书