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中数据的批量导入(csv文件)
Oct 09 PHP
PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
Jan 16 PHP
php set_time_limit()函数的使用详解
Jun 05 PHP
解析在zend Farmework下如何创立一个FORM表单
Jun 28 PHP
php ckeditor上传图片文件名乱码解决方法
Nov 15 PHP
php伪静态之APACHE篇
Jun 02 PHP
PHP面向对象程序设计之接口用法
Aug 20 PHP
php商品对比功能代码分享
Sep 24 PHP
yii2 页面底部加载css和js的技巧
Apr 21 PHP
PHPMAILER实现PHP发邮件功能
Apr 18 PHP
PHP+Ajax简单get验证操作示例
Mar 02 PHP
Laravel中10个有用的用法小结
May 06 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/03/24 PHP
php 搜索框提示(自动完成)实例代码
2012/02/05 PHP
PHP Global变量定义当前页面的全局变量实现探讨
2013/06/05 PHP
PHP简单判断字符串是否包含另一个字符串的方法
2016/03/25 PHP
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
javascript 进阶篇1 正则表达式,cookie管理,userData
2012/03/14 Javascript
jQuery筛选器children()案例详解(图文)
2013/02/17 Javascript
JS实现点击按钮自动增加一个单元格的方法
2015/03/09 Javascript
浅谈javascript语法和定时函数
2015/05/03 Javascript
微信小程序 开发经验整理
2017/02/15 Javascript
angularjs过滤器--filter与ng-repeat配合有奇效
2017/04/20 Javascript
javascript浏览器用户代理检测脚本实现方法
2017/10/27 Javascript
Angularjs实现控制器之间通信方式实例总结
2018/03/27 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
[45:18]完美世界DOTA2联赛循环赛 PXG vs IO 第二场 11.06
2020/11/09 DOTA
Linux下为不同版本python安装第三方库
2016/08/31 Python
Python实现桶排序与快速排序算法结合应用示例
2017/11/22 Python
python类的方法属性与方法属性的动态绑定代码详解
2017/12/27 Python
python SSH模块登录,远程机执行shell命令实例解析
2018/01/12 Python
对Python3中的input函数详解
2018/04/22 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
2018/12/24 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
Python GUI编程 文本弹窗的实例
2019/06/11 Python
Python 中 -m 的典型用法、原理解析与发展演变
2019/11/11 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
2019/12/11 Python
python实现从ftp上下载文件的实例方法
2020/07/19 Python
Python try except else使用详解
2021/01/12 Python
美国办公用品购物网站:Quill.com
2016/09/01 全球购物
JENNIFER BEHR官网:各种耳环和发饰
2020/06/07 全球购物
洗煤厂厂长岗位职责
2014/01/03 职场文书
团组织关系介绍信
2014/01/12 职场文书
学校工作推荐信范文
2014/07/11 职场文书
领导干部作风建设总结
2014/10/23 职场文书
荒岛余生观后感
2015/06/09 职场文书
运动会100米加油稿
2015/07/21 职场文书
Spring Data JPA使用JPQL与原生SQL进行查询的操作
2021/06/15 Java/Android