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 相关文章推荐
自动跳转中英文页面
Oct 09 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
Jun 03 PHP
解析PHP中empty is_null和isset的测试
Jun 29 PHP
如何使用PHP批量去除文件UTF8 BOM信息
Aug 05 PHP
ECMall支持SSL连接邮件服务器的配置方法详解
May 19 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
Mar 07 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
Apr 01 PHP
Yii2中Restful API原理实例分析
Jul 25 PHP
PHP命名空间namespace的定义方法详解
Mar 29 PHP
PHP基于DOMDocument解析和生成xml的方法分析
Jul 17 PHP
ThinkPHP框架下微信支付功能总结踩坑笔记
Apr 10 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
Oct 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
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
2013/06/03 PHP
thinkphp中memcache的用法实例
2014/11/29 PHP
PHP与服务器文件系统的简单交互
2016/10/21 PHP
jquery里的正则表达式说明
2011/08/03 Javascript
很好用的js日历算法详细代码
2013/03/07 Javascript
js综合应用实例简单的表格统计
2013/09/03 Javascript
JS实现局部选择打印和局部不选择打印
2014/04/03 Javascript
JS判断、校验MAC地址的2个实例
2014/05/05 Javascript
node.js中的fs.unlinkSync方法使用说明
2014/12/15 Javascript
基于Echarts 3.19 制作常用的图形(非静态)
2016/05/19 Javascript
微信小程序中顶部导航栏的实现代码
2017/03/30 Javascript
微信小程序实战之轮播图(3)
2017/04/17 Javascript
微信小程序实现登录页云层漂浮的动画效果
2017/05/05 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
详解jenkins自动化部署vue
2019/05/14 Javascript
Vue中import from的来源及省略后缀与加载文件夹问题
2020/02/09 Javascript
JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
2020/04/13 Javascript
[01:35:53]完美世界DOTA2联赛PWL S3 Magma vs GXR 第二场 12.13
2020/12/17 DOTA
深入理解NumPy简明教程---数组2
2016/12/17 Python
tensorflow 获取变量&amp;打印权值的实例讲解
2018/06/14 Python
python实现邮件自动发送
2019/08/10 Python
python实现的生成word文档功能示例
2019/08/23 Python
HTML5之web workers_动力节点Java学院整理
2017/07/17 HTML / CSS
HTML5 b和i标记将被赋予真正的语义
2009/07/16 HTML / CSS
html5手机键盘弹出收起的处理
2020/01/20 HTML / CSS
欧洲最大的笔和书写专家:The Pen Shop
2017/03/19 全球购物
英国奢侈皮具品牌:Aspinal of London
2018/09/02 全球购物
网络安全方面的面试题
2015/11/04 面试题
资产评估专业大学生求职信
2013/09/29 职场文书
售后服务承诺函格式
2015/01/21 职场文书
2016创先争优活动党员公开承诺书
2016/03/24 职场文书
村党总支部公开承诺书2016
2016/03/25 职场文书
送给火锅店的创意营销方案!
2019/07/08 职场文书
2019年关于小学生课外阅读情况的分析报告
2019/12/02 职场文书
pytorch model.cuda()花费时间很长的解决
2021/06/01 Python
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python