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将网址字符串转换成超链接(网址或email)
May 25 PHP
深入理解PHP原理之异常机制
Aug 21 PHP
PHP数组对比函数,存在交集则返回真,否则返回假
Feb 03 PHP
PHP高级对象构建 多个构造函数的使用
Feb 05 PHP
基于php在各种web服务器的运行模式详解
Jun 03 PHP
php 获取本地IP代码
Jun 23 PHP
解析php入库和出库
Jun 25 PHP
请离开include_once和require_once
Jul 18 PHP
实现PHP多线程异步请求的3种方法
Jan 17 PHP
PHP5各个版本的新功能和新特性总结
Mar 16 PHP
Smarty局部缓存的几种方法简介
Jun 17 PHP
php集成动态口令认证
Jul 21 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
怎样辨别一杯好咖啡
2021/03/03 新手入门
PHP连接局域网MYSQL数据库的简单实例
2013/08/26 PHP
PHP的Yii框架中Model模型的学习教程
2016/03/29 PHP
Yii框架实现多数据库配置和操作的方法
2017/05/25 PHP
laravel使用Faker数据填充的实现方法
2019/04/12 PHP
基于jquery的checkbox下拉框插件代码
2010/06/25 Javascript
深入理解JavaScript系列(15) 函数(Functions)
2012/04/12 Javascript
详解JavaScript 中的 replace 方法
2016/01/01 Javascript
JavaScript常用本地对象小结
2016/03/28 Javascript
jQuery实现的动态文字变化输出效果示例【附演示与demo源码下载】
2017/03/24 jQuery
JavaScript判断浏览器和hack滚动条的写法
2017/07/23 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
2017/11/28 Javascript
jquery实现楼层滚动效果
2018/01/01 jQuery
Bootstrap4如何定制自己的颜色和风格
2018/02/26 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
2018/09/04 Javascript
简单了解JavaScript异步
2019/05/23 Javascript
基于JS实现父组件的请求服务过程解析
2019/10/14 Javascript
vue设置一开始进入的页面教程
2019/10/28 Javascript
[01:32]完美世界DOTA2联赛10月29日精彩集锦
2020/10/30 DOTA
[34:41]夜魇凡尔赛茶话会 第二期02:你画我猜
2021/03/11 DOTA
Python的Flask框架中实现分页功能的教程
2015/04/20 Python
Python分治法定义与应用实例详解
2017/07/28 Python
Python中执行存储过程及获取存储过程返回值的方法
2017/10/07 Python
对Python2与Python3中__bool__方法的差异详解
2018/11/01 Python
浅谈python的dataframe与series的创建方法
2018/11/12 Python
使用python快速在局域网内搭建http传输文件服务的方法
2019/11/14 Python
代码总结Python2 和 Python3 字符串的区别
2020/01/28 Python
深入浅析Python代码规范性检测
2020/07/31 Python
python如何实现图片压缩
2020/09/11 Python
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
PHP经典面试题
2016/09/03 面试题
廉政教育心得体会
2014/01/01 职场文书
销售人员职业生涯规划范文
2014/03/01 职场文书
财务科长个人对照检查材料
2014/09/18 职场文书
2015年安全工作总结范文
2015/04/02 职场文书
python机器学习创建基于规则聊天机器人过程示例详解
2021/11/02 Python