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 相关文章推荐
分页显示Oracle数据库记录的类之二
Oct 09 PHP
php 文件状态缓存带来的问题
Dec 14 PHP
一个基于PDO的数据库操作类
Mar 24 PHP
色色整理的PHP面试题集锦
Mar 08 PHP
PHP 过滤页面中的BOM(实现代码)
Jun 29 PHP
学习php设计模式 php实现桥梁模式(bridge)
Dec 07 PHP
php微信公众号js-sdk开发应用
Nov 28 PHP
PHP 中使用explode()函数切割字符串为数组的示例
May 06 PHP
详细解读php的命名空间(一)
Feb 21 PHP
php中的依赖注入实例详解
Aug 14 PHP
jQuery+PHP实现图片上传并提交功能
Jul 27 PHP
基于PHP+mysql实现新闻发布系统的开发
Aug 06 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 字符串分割和比较
2009/10/06 PHP
浅谈PHP 闭包特性在实际应用中的问题
2009/10/30 PHP
php 读取shell管道传输过来的内容
2010/03/01 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
2014/09/22 PHP
PHP易混淆函数的区别及用法汇总
2014/11/22 PHP
Js获取事件对象代码
2010/08/05 Javascript
JavaScript高级程序设计(第三版)学习笔记1~5章
2016/03/11 Javascript
浅析Bootstrap组件之面板组件
2016/05/04 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
JavaScript易错知识点整理
2016/12/05 Javascript
jQuery中的on与bind绑定事件区别实例详解
2017/02/28 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
Vue项目路由刷新的实现代码
2019/04/17 Javascript
在Vue项目中用fullcalendar制作日程表的示例代码
2019/08/04 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
2019/09/21 Javascript
你准备好迎接vue3.0了吗
2020/04/28 Javascript
vue实现简单计算商品价格
2020/09/14 Javascript
[08:40]Navi Vs Newbee
2018/06/07 DOTA
Python中optparse模块使用浅析
2015/01/01 Python
Python简单生成8位随机密码的方法
2017/05/24 Python
python tensorflow学习之识别单张图片的实现的示例
2018/02/09 Python
python 多线程对post请求服务器测试并发的方法
2019/06/13 Python
python 弹窗提示警告框MessageBox的实例
2019/06/18 Python
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
python用match()函数爬数据方法详解
2019/07/23 Python
基于selenium及python实现下拉选项定位select
2020/07/22 Python
pandas抽取行列数据的几种方法
2020/12/13 Python
python中@contextmanager实例用法
2021/02/07 Python
CSS3实战第一波 让我们尽情的圆角吧
2010/08/27 HTML / CSS
现场施工员岗位职责
2014/03/10 职场文书
2015年政府采购工作总结
2015/05/21 职场文书
故意杀人罪辩护词
2015/05/21 职场文书
毕业典礼主持词
2015/06/29 职场文书
大学生暑期实践报告
2015/07/13 职场文书
交通安全宣传标语(100条)
2019/08/22 职场文书
SQL Server 数据库实验课第五周——常用查询条件
2021/04/05 SQL Server