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 相关文章推荐
WHOIS类的修改版
Oct 09 PHP
PHP 和 XML: 使用expat函数(二)
Oct 09 PHP
php取整函数ceil,floo,round的用法及介绍
Aug 31 PHP
thinkphp普通查询与表达式查询实例分析
Nov 24 PHP
详细解读PHP的Yii框架中登陆功能的实现
Aug 21 PHP
详解 PHP加密解密字符串函数附源码下载
Dec 18 PHP
PHP Cookei记录用户历史浏览信息的代码
Feb 03 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
Feb 17 PHP
YII2框架中使用yii.js实现的post请求
Apr 09 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
Jul 03 PHP
laravel 查询数据库获取结果实现判断是否为空
Oct 24 PHP
php经典趣味算法实例代码
Jan 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
Yii2实现同时搜索多个字段的方法
2016/08/10 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
2018/05/23 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
网页禁用右键实现代码(JavaScript代码)
2009/10/29 Javascript
Java 正则表达式学习总结和一些小例子
2012/09/13 Javascript
JS Loading功能的简单实现
2013/11/29 Javascript
js父页面与子页面不同时显示的方法
2014/10/16 Javascript
你不知道的高性能JAVASCRIPT
2016/01/18 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
ES5学习教程之Array对象
2017/04/01 Javascript
利用Webpack实现小程序多项目管理的方法
2019/02/25 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
2019/10/30 Javascript
Jquery让form表单异步提交代码实现
2019/11/14 jQuery
js实现简单的打印表格
2020/01/15 Javascript
vuecli3.x中轻松4步带你使用tinymce的步骤
2020/06/25 Javascript
JavaScript语句错误throw、try及catch实例解析
2020/08/18 Javascript
[33:23]VG vs Pain 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python数据结构链表之单向链表(实例讲解)
2017/07/25 Python
Django之使用celery和NGINX生成静态页面实现性能优化
2019/10/08 Python
python实现银行实战系统
2020/02/26 Python
python 元组的使用方法
2020/06/09 Python
Python实现自动签到脚本功能
2020/08/20 Python
python文件排序的方法总结
2020/09/13 Python
Web时代变迁及html5与html4的区别
2016/01/06 HTML / CSS
移动端html5模拟长按事件的实现方法
2018/09/30 HTML / CSS
Bjorn Borg官方网上商店:国际运动时尚品牌
2016/08/27 全球购物
苹果Mac升级:MacSales.com
2017/11/20 全球购物
纪伊国屋新加坡网上书店:Kinokuniya新加坡
2017/12/29 全球购物
Bravofly德国:预订廉价航班和酒店
2019/09/22 全球购物
意大利运动服减价商店:ScontoSport
2020/03/10 全球购物
优秀共产党员事迹材料
2014/12/18 职场文书
护士个人年度总结范文
2015/02/13 职场文书
行政上诉状范文
2015/05/23 职场文书
MySQL数据库压缩版本安装与配置详细教程
2021/05/21 MySQL
详细了解java监听器和过滤器
2021/07/09 Java/Android