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面向对象的使用教程 简单数据库连接
Nov 25 PHP
hessian 在PHP中的使用介绍
Dec 13 PHP
PHP中调用ASP.NET的WebService的代码
Apr 22 PHP
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
Jun 17 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
Aug 21 PHP
Smarty中的注释和截断功能介绍
Apr 09 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
May 11 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
May 12 PHP
如何在HTML 中嵌入 PHP 代码
May 13 PHP
PHP学习笔记之php文件操作
Jun 03 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
Nov 09 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
Mar 27 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中判断文件存在使用is_file还是file_exists?
2015/04/03 PHP
Flash对联广告的关闭按钮讨论
2007/01/30 Javascript
javascript fullscreen全屏实现代码
2009/04/09 Javascript
JS中for循序中延迟加载动态效果的具体实现
2013/08/18 Javascript
javascript 函数及作用域总结介绍
2013/11/12 Javascript
Jqgrid设置全选(选择)及获取选择行的值示例代码
2013/12/28 Javascript
javascript中的事件代理初探
2014/03/08 Javascript
浅谈js的setInterval事件
2014/12/05 Javascript
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
2016/04/15 Javascript
JS使用正则实现去掉字符串左右空格的方法
2016/12/27 Javascript
jQuery实现别踩白块儿网页版小游戏
2017/01/18 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
2017/02/23 Javascript
js字符串与Unicode编码互相转换
2017/05/17 Javascript
详解Angular的8个主要构造块
2017/06/20 Javascript
jQuery选择器中的特殊符号处理方法
2017/09/08 jQuery
JS基于正则表达式实现的密码强度验证功能示例
2017/09/21 Javascript
利用JS判断客户端类型你应该知道的四种方法
2017/12/22 Javascript
JS的Ajax与后端交互数据的实例
2018/08/08 Javascript
Vue.js单向绑定和双向绑定实例分析
2018/08/14 Javascript
nodejs读取本地中文json文件出现乱码解决方法
2018/10/10 NodeJs
vue实现鼠标移入移出事件代码实例
2019/03/27 Javascript
微信小程序上传多图到服务器并获取返回的路径
2019/05/05 Javascript
vue+AI智能机器人回复功能实现
2020/07/16 Javascript
[02:51]DOTA2英雄基础教程 风暴之灵
2013/12/23 DOTA
Python中的os.path路径模块中的操作方法总结
2016/07/07 Python
Python HTTP客户端自定义Cookie实现实例
2017/04/28 Python
python实现简易动态时钟
2018/11/19 Python
python实现控制台输出颜色
2021/03/02 Python
利用css3径向渐变做一张优惠券的示例
2018/03/22 HTML / CSS
Html5游戏开发之乒乓Ping Pong游戏示例(一)
2013/01/21 HTML / CSS
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
Europcar澳大利亚官网:全球汽车租赁领域的领导者
2019/03/24 全球购物
nginx proxy_cache 缓存配置详解
2021/03/31 Servers
Django模型层实现多表关系创建和多表操作
2021/07/21 Python
教你部署vue项目到docker
2022/04/05 Vue.js
Hive HQL支持2种查询语句风格
2022/06/25 数据库