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 相关文章推荐
sourcesafe管理phpproj文件的补充说明(downmoon)
Apr 11 PHP
PHP var_dump遍历对象属性的函数与应用代码
Jun 04 PHP
PHP程序开发范例学习之表单 获取文本框的值
Aug 08 PHP
PHP 日,周,月点击排行统计
Jan 11 PHP
Notice: Trying to get property of non-object problem(PHP)解决办法
Mar 11 PHP
PHP提示Notice: Undefined variable的解决办法
Nov 24 PHP
深入PHP变量存储的详解
Jun 13 PHP
php遍历数组的4种方法总结
Jul 05 PHP
php通过Chianz.com获取IP地址与地区的方法
Jan 14 PHP
解决PHP 7编译安装错误:cannot stat ‘phar.phar’: No such file or directory
Feb 25 PHP
php取出数组单个值的方法
Mar 12 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
Oct 11 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在线打包程序源码
2008/07/27 PHP
深入php常用函数的使用汇总
2013/06/08 PHP
php实现将任意进制数转换成10进制的方法
2015/04/17 PHP
如何获取select下拉框的值(option没有及有value属性)
2013/11/08 Javascript
简体中文转换繁体中文(实现代码)
2013/12/25 Javascript
jQuery使用之设置元素样式用法实例
2015/01/19 Javascript
JavaScript jquery及AJAX小结
2016/01/24 Javascript
jQuery实现CheckBox全选、全不选功能
2017/01/11 Javascript
bootstrapValidator 重新启用提交按钮的方法
2017/02/20 Javascript
在nginx上部署vue项目(history模式)的方法
2017/12/28 Javascript
Angular利用内容投射向组件输入ngForOf模板的方法
2018/03/05 Javascript
详解vue axios二次封装
2018/07/22 Javascript
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
2019/05/17 Javascript
mpvue实现左侧导航与右侧内容的联动
2019/10/21 Javascript
extjs4图表绘制之折线图实现方法分析
2020/03/06 Javascript
原生JS实现pc端轮播图效果
2020/12/21 Javascript
[04:29]2014DOTA2国际邀请赛 主赛事第三日TOPPLAY
2014/07/21 DOTA
Python实现微信公众平台自定义菜单实例
2015/03/20 Python
python实现闹钟定时播放音乐功能
2018/01/25 Python
在 Python 中接管键盘中断信号的实现方法
2020/02/04 Python
css3实现椭圆轨迹旋转的示例代码
2018/10/29 HTML / CSS
美国花布包包品牌:Vera Bradley
2017/08/11 全球购物
Tessabit日本:集世界奢侈品和设计师品牌的意大利精品买手店
2020/01/07 全球购物
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
小学向国旗敬礼活动方案
2014/09/27 职场文书
租车协议书范本2014
2014/11/17 职场文书
材料员岗位职责
2015/02/10 职场文书
首席执行官观后感
2015/06/03 职场文书
导游词之江苏溱潼古镇
2019/11/27 职场文书
为什么mysql字段要使用NOT NULL
2021/05/13 MySQL
MySQL5.7并行复制原理及实现
2021/06/03 MySQL
Python数据可视化之基于pyecharts实现的地理图表的绘制
2021/06/10 Python
小程序实现文字循环滚动动画
2021/06/14 Javascript
如何使用 resize 实现图片切换预览功能
2021/08/23 HTML / CSS
灵能百分百第三季什么时候来?
2022/03/15 日漫