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 相关文章推荐
PHP脚本的10个技巧(5)
Oct 09 PHP
PHP中strtotime函数使用方法分享
Jan 10 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
Mar 17 PHP
php多个文件及图片上传实例详解
Nov 10 PHP
thinkphp模板输出技巧汇总
Nov 24 PHP
php实现无限级分类
Dec 24 PHP
php实现的mongodb操作类实例
Apr 03 PHP
Yii2超好用的日期和时间组件(值得收藏)
May 05 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
Jul 07 PHP
Laravel框架使用Redis的方法详解
May 30 PHP
微信企业转账之入口类分装php代码
Oct 01 PHP
PHP array_reduce()函数的应用解析
Oct 28 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
php intval的测试代码发现问题
2008/07/27 PHP
PHP把JPEG图片转换成Progressive JPEG的方法
2014/06/30 PHP
php函数传值的引用传递注意事项分析
2016/06/25 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
2016/12/12 PHP
Javascript 复制数组实现代码
2009/11/26 Javascript
jQuery插件 tabBox实现代码
2010/02/09 Javascript
javascript解决innerText浏览器兼容问题思路代码
2013/05/17 Javascript
键盘KeyCode值列表汇总
2013/11/26 Javascript
JQuery 在线引用及测试引用是否成功
2014/06/24 Javascript
js中confirm实现执行操作前弹出确认框的方法
2014/11/01 Javascript
jQuery获取attr()与prop()属性值的方法及区别介绍
2016/07/06 Javascript
js插件Jcrop自定义截取图片功能
2016/10/14 Javascript
bootstrap多种样式进度条展示
2016/12/20 Javascript
Vue.js 单页面多路由区域操作的实例详解
2017/07/17 Javascript
微信小程序 页面跳转传值实现代码
2017/07/27 Javascript
PWA介绍及快速上手搭建一个PWA应用的方法
2019/01/27 Javascript
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
python实现连接mongodb的方法
2015/05/08 Python
Python按行读取文件的实现方法【小文件和大文件读取】
2016/09/19 Python
Python正则捕获操作示例
2017/08/19 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
2019/08/05 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
2019/08/12 Python
python模拟实现分发扑克牌
2020/04/22 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
2020/05/10 Python
python是怎么被发明的
2020/06/15 Python
python绘制高斯曲线
2021/02/19 Python
matplotlib之属性组合包(cycler)的使用
2021/02/24 Python
Ibood荷兰:互联网每日最佳在线优惠
2019/02/28 全球购物
毕业生的自我鉴定该怎么写
2013/12/02 职场文书
中国梦演讲稿5分钟
2014/08/19 职场文书
中职三好学生事迹材料
2014/08/24 职场文书
2014年惩防体系建设工作总结
2014/12/01 职场文书
表扬稿格式范文
2015/01/16 职场文书
2015年国庆节标语大全
2015/07/30 职场文书
文书工作总结(范文)
2019/07/11 职场文书
Python字符串对齐方法使用(ljust()、rjust()和center())
2021/04/26 Python