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中GET变量的使用
Oct 09 PHP
利用PHP制作简单的内容采集器的原理分析
Oct 01 PHP
php实现的仿阿里巴巴实现同类产品翻页
Dec 11 PHP
php中神奇的fastcgi_finish_request
May 02 PHP
php ImageMagick windows下安装教程
Jan 26 PHP
win7系统配置php+Apache+mysql环境的方法
Aug 21 PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
Apr 15 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
Sep 02 PHP
php 算法之实现相对路径的实例
Oct 17 PHP
PHP实现微信对账单处理
Oct 01 PHP
Laravel框架实现调用百度翻译API功能示例
May 30 PHP
thinkphp5.1框架模板赋值与变量输出示例
May 25 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之数据库操作详解及乱码解决!
2007/01/02 PHP
php 发送带附件邮件示例
2014/01/23 PHP
thinkphp下MySQL数据库读写分离代码剖析
2017/04/18 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
2019/10/15 PHP
JSChart轻量级图形报表工具(内置函数中文参考)
2010/10/11 Javascript
JS高级拖动技术 setCapture,releaseCapture
2011/07/31 Javascript
javascript时间函数大全
2014/06/30 Javascript
js锁屏解屏通过对$.ajax进行封装实现
2014/07/31 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
微信小程序 action-sheet 反馈上拉菜单简单实例
2017/05/11 Javascript
详解Vue中localstorage和sessionstorage的使用
2017/12/22 Javascript
JavaScript如何实现图片处理与合成
2020/05/29 Javascript
[56:35]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第二局
2016/02/27 DOTA
Python找出9个连续的空闲端口
2016/02/01 Python
TensorFlow 滑动平均的示例代码
2018/06/19 Python
Python爬取qq空间说说的实例代码
2018/08/17 Python
pycharm在调试python时执行其他语句的方法
2018/11/29 Python
对Python 中矩阵或者数组相减的法则详解
2019/08/26 Python
Django 框架模型操作入门教程
2019/11/05 Python
Python 去除字符串中指定字符串
2020/03/05 Python
python目标检测给图画框,bbox画到图上并保存案例
2020/03/10 Python
python实现Pyecharts实现动态地图(Map、Geo)
2020/03/25 Python
Python中flatten( ),matrix.A用法说明
2020/07/05 Python
FitFlop澳大利亚官网:英国符合人体工学的鞋类品牌
2017/06/05 全球购物
八年级历史教学反思
2014/01/10 职场文书
大型活动策划方案
2014/01/12 职场文书
社区党务公开实施方案
2014/03/18 职场文书
幼儿园小班评语大全
2014/04/17 职场文书
授权委托书(法人单位用)
2014/09/29 职场文书
地球一小时活动总结
2015/02/27 职场文书
当你找不到方向的时候,不妨读读刘备的一生
2019/08/05 职场文书
创业计划书之旅游网站
2019/09/06 职场文书
Django实现翻页的示例代码
2021/05/24 Python
DSP接收机前端设想
2022/04/05 无线电