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中ob(Output Buffer 输出缓冲)函数使用方法
Jul 21 PHP
php另类上传图片的方法(PHP用Socket上传图片)
Oct 30 PHP
实现PHP框架系列文章(6)mysql数据库方法
Mar 04 PHP
PHP生成静态HTML文档实现代码
Jun 23 PHP
mac下多个php版本快速切换的方法
Oct 09 PHP
PHPCMS手机站伪静态设置详细教程
Feb 06 PHP
详解PHP处理字符串类似indexof的方法函数
Jun 11 PHP
php获取微信共享收货地址的方法
Dec 21 PHP
PHP实现支持CURL字符串证书传输的方法
Mar 23 PHP
详解提高使用Java反射的效率方法
Apr 29 PHP
PHP钩子实现方法解析
May 21 PHP
laravel 解决paginate查询多个字段报错的问题
Oct 22 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
编写漂亮的代码 - 将后台程序与前端程序分开
2008/04/23 PHP
PHP XML操作类DOMDocument
2009/12/16 PHP
PHP中防止直接访问或查看或下载config.php文件的方法
2012/07/07 PHP
PHP的自定义模板引擎
2017/03/24 PHP
PHP数组中头部和尾部添加元素的方法(array_unshift,array_push)
2017/04/10 PHP
jquery根据name属性查找的小例子
2013/11/21 Javascript
js中对象的声明方式以及数组的一些用法示例
2013/12/11 Javascript
JavaScript数据推送Comet技术详解
2016/04/07 Javascript
Backbone View 之间通信的三种方式
2016/08/09 Javascript
js replace()去除代码中空格的实例
2017/02/14 Javascript
js模块加载方式浅析
2017/08/12 Javascript
jQuery图片缩放插件smartZoom使用实例详解
2017/08/25 jQuery
修改Nodejs内置的npm默认配置路径方法
2018/05/13 NodeJs
JavaScript常用截取字符串的三种方式用法区别实例解析
2018/05/15 Javascript
JavaScript ES6箭头函数使用指南
2018/12/30 Javascript
js针对图片加载失败的处理方法分析
2019/08/24 Javascript
Node在Controller层进行数据校验的过程详解
2020/08/28 Javascript
python中os操作文件及文件路径实例汇总
2015/01/15 Python
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
python使用多进程的实例详解
2018/09/19 Python
Python values()与itervalues()的用法详解
2019/11/27 Python
python实现一个猜拳游戏
2020/04/05 Python
Python更换pip源方法过程解析
2020/05/19 Python
Python实现一个简单的递归下降分析器
2020/08/01 Python
CSS3 rgb and rgba(透明色)的使用详解
2020/09/25 HTML / CSS
跑鞋、网球鞋、网球拍、服装及装备:Holabird Sports
2016/09/19 全球购物
美国家居装饰购物网站:Amanda Lindroth
2020/03/25 全球购物
《绿色蝈蝈》教学反思
2014/03/02 职场文书
2014两会优秀的心得体会范文
2014/03/17 职场文书
静心口服夜广告词
2014/03/20 职场文书
合同协议书格式
2014/04/18 职场文书
涉及车辆房产分割的离婚协议书范文
2014/10/12 职场文书
护士2014年终工作总结
2014/11/11 职场文书
期末考试复习计划
2015/01/19 职场文书
辩论赛开场白大全(主持人+辩手)
2015/05/29 职场文书
go类型转换及与C的类型转换方式
2021/05/05 Golang