首页 开发编程 正文

php怎么取ip(ip138域名查询网)

把代码贴到你的网页里.这样性价比比较高.和网站建立连接,自己和对方的ip信息自然都暴露在ip包里了2、php判断ip地址是否正确的代码?}$arr_ip=[这里放入要检查IP;不是正确的IP地址'3、curl获取网页被拒绝求助;在对应域名没有IPv6的情况下;php//返回当前IP的城市字符串functionconvertip...

php怎么取ip,ip138域名查询网?

http://www.ip138.com/

前提,你会一种网页编程语言如:PHP,ASP,JSP或者CGI也可以.最重要的,你必须具有IP数据库,而且这个数据会要定期更新IP数据. 个人来说,一般不具备这种财力和精力,我建议,你如果想在你的网站上放IP查询系统,可以去IP138.COM申请免费的代码,把代码贴到你的网页里.这样性价比比较高.

和网站建立连接,自己和对方的ip信息自然都暴露在ip包里了

php判断ip地址是否正确的代码?

想要正确的使用正则表达式来判断 IP 地址正确与否,重点就是如何使用正则表达式来表示 IP 中的 4 个数字,保证它们的取值范围在 0~255 之间。

如下所示:

([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5])

有了上面的正则表达式,定义好4组数正则表达式

((([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.){3}(([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))

至此正则表达式就是定义好了,将它放到代码中来验证一下,代码如下所示:

function validateip($ip){

$preg="/^((([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.){3}(([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))/";

preg_match($preg,$ip,$matches);

if(!empty($matches)) return 1;

return 0;

}

$arr_ip = [

这里放入要检查IP,用","分隔多个IP

];

foreach ($arr_ip as $value) {

if(validateip($value)){

echo $value.' 是正确的 IP 地址';

}else{

echo $value.' 不是正确的 IP 地址';

}

}

?>

curl获取网页被拒绝求助?

如果开启了IPv6,curl默认会优先解析 IPv6,在对应域名没有 IPv6 的情况下,会等待 IPv6 dns解析失败 timeout 之后才按以前的正常流程去找 ipv4 原因: 在程序中我对curl获取内容都作了较为严格的超时限制,所以就会造成无法获取内容的问题。 解决方法:设置默认访问为ipv4。 php的curl设置方法如下: 复制代码 代码如下:

startip和endip各是干什么用的?

start ip和end ip 是DHCP服务器里面设置的IP地址范围,start ip就是起始IP地址,end ip就是终点IP地址;刷新IP地址的时候或者自动获取IP地址的时候,一般是从start IP 开始分配IP地址的,因此获得start ip的可能性最大,特别是网络里面没几台电脑的时候。

网站如何实现自动根据IP跳转到当地地址?

PW自身就有根据IP判断所属地区的功能,只要经常更新IP库就没什么问题.至于根据归属地跳转到相应页面就需要你自己去写了。网上帮你找了一个,看是否合适。

。<?php

//返回当前IP的城市字符串

function convertip($ip) {

//IP数据文件路径

$dat_path = 'QQWry.Dat';

//检查IP地址

if(!preg_match("/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/", $ip)) {

return 'IP Address Error';

}

//打开IP数据文件

if(!$fd = @fopen($dat_path, 'rb')){

return 'IP date file not exists or access denied';

}

//分解IP进行运算,得出整形数

$ip = explode('.', $ip);

$ipNum = $ip[0] * 16777216 + $ip[1] * 65536 + $ip[2] * 256 + $ip[3];

//获取IP数据索引开始和结束位置

$DataBegin = fread($fd, 4);

$DataEnd = fread($fd, 4);

$ipbegin = implode('', unpack('L', $DataBegin));

if($ipbegin < 0) $ipbegin += pow(2, 32);

$ipend = implode('', unpack('L', $DataEnd));

if($ipend < 0) $ipend += pow(2, 32);

$ipAllNum = ($ipend $ipbegin) / 7 + 1;

$BeginNum = 0;

$EndNum = $ipAllNum;

//使用二分查找法从索引记录中搜索匹配的IP记录

while($ip1num>$ipNum || $ip2num<$ipNum) {

$Middle= intval(($EndNum + $BeginNum) / 2);

//偏移指针到索引位置读取4个字节

fseek($fd, $ipbegin + 7 * $Middle);

$ipData1 = fread($fd, 4);

if(strlen($ipData1) < 4) {

fclose($fd);

return 'System Error';

}

//提取出来的数据转换成长整形,如果数据是负数则加上2的32次幂

$ip1num = implode('', unpack('L', $ipData1));

if($ip1num < 0) $ip1num += pow(2, 32);

//提取的长整型数大于我们IP地址则修改结束位置进行下一次循环

if($ip1num > $ipNum) {

$EndNum = $Middle;

continue;

}

//取完上一个索引后取下一个索引

$DataSeek = fread($fd, 3);

if(strlen($DataSeek) < 3) {

fclose($fd);

return 'System Error';

}

$DataSeek = implode('', unpack('L', $DataSeek.chr(0)));

fseek($fd, $DataSeek);

$ipData2 = fread($fd, 4);

if(s

本文转载自互联网,如有侵权,联系删除