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面向对象全攻略 (一) 面向对象基础知识
Sep 30 PHP
PHP 引用文件技巧
Mar 02 PHP
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
Mar 15 PHP
PHP 小心urldecode引发的SQL注入漏洞
Oct 27 PHP
php 带逗号千位符数字的处理方法
Jan 10 PHP
解析argc argv在php中的应用
Jun 24 PHP
深入解析Session是否必须依赖Cookie
Aug 02 PHP
php将html转成wml的WAP标记语言实例
Jul 08 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
Jan 12 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
Feb 07 PHP
使用Laravel中的查询构造器实现增删改查功能
Sep 03 PHP
tp5框架使用cookie加密算法实现登录功能示例
Feb 10 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 whois查询API制作方法
2011/06/23 PHP
跟我学Laravel之快速入门
2014/10/15 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
PHP的Yii框架中Model模型的学习教程
2016/03/29 PHP
[原创]php实现子字符串位置相互对调互换的方法
2016/06/02 PHP
jQuery实战之品牌展示列表效果
2011/04/10 Javascript
Javascript玩转继承(三)
2014/05/08 Javascript
js函数参数设置默认值的一种变通实现方法
2014/05/26 Javascript
js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法
2015/04/25 Javascript
BootStrap实现树形目录组件代码详解
2016/06/21 Javascript
第一次接触神奇的Bootstrap菜单和导航
2016/08/01 Javascript
JS中LocalStorage与SessionStorage五种循序渐进的使用方法
2017/07/12 Javascript
Angular5中提取公共组件之radio list的实例代码
2018/07/10 Javascript
解决jquery有正确返回值但不执行success函数的问题
2018/08/20 jQuery
Vue 组件参数校验与非props特性的方法
2019/02/12 Javascript
Vue自定义属性实例分析
2019/02/23 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
2019/08/01 Javascript
vue实现文字加密功能
2019/09/27 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
2020/02/06 Javascript
解决vue-router路由拦截造成死循环问题
2020/08/05 Javascript
JavaScript封装单向链表的示例代码
2020/09/17 Javascript
[01:04:05]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python实现单线程多任务非阻塞TCP服务端
2017/06/13 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
2017/11/30 Python
python中闭包Closure函数作为返回值的方法示例
2017/12/17 Python
Python实现判断字符串中包含某个字符的判断函数示例
2018/01/08 Python
Python中pow()和math.pow()函数用法示例
2018/02/11 Python
AmazeUI 平滑滚动效果的示例代码
2020/08/20 HTML / CSS
eHarmony英国:全球领先的认真恋爱约会平台之一
2020/11/16 全球购物
青年创业培训欢迎词
2014/01/10 职场文书
写给医院的感谢信
2015/01/22 职场文书
2015年施工员工作总结范文
2015/04/20 职场文书
2015年体育教学工作总结
2015/05/20 职场文书
初一军训感言
2015/08/01 职场文书
2021年pycharm的最新安装教程及基本使用图文详解
2021/04/03 Python
nginx访问报403错误的几种情况详解
2022/07/23 Servers