本文介绍下,用php获取网站的地理位置,以及操作系统相关信息的一例代码,有需要的朋友参考下。
1,php代码部分
- <!--?php
- /**
- * 获取网站地理位置
- * 获取网站操作系统信息
- * edit by bbs.it-home.org
- */
- error_reporting(E_ERROR);
- header(“content-Type: text/html; charset=gb2312″);
- set_time_limit(120);
- $host = isset($_POST['url']) ? chop(str_replace(‘http://’,”,$_POST['url'])) : ‘ www.2cto.com ’;
- $port = isset($_POST['duankou']) ? chop($_POST['duankou']) : ’80′;
- $num = 10;
- function microtime_float()
- {
- list($usec, $sec) = explode(” “, microtime());
- return ((float)$usec + (float)$sec);
- }
- function ip138($url)
- {
- $host = ‘www.ip138.com’;
- $fp = @fsockopen($host,80,&$errno,&$errstr,3);
- $get = “GET /ips.asp?ip=”.$url.” HTTP/1.1\r\nHost:”.$host.”\r\nConnection: Close\r\n\r\n”;
- @fputs($fp,$get);
- $data = ”;
- while ($fp && !feof($fp))
- $data .= fread($fp, 1024);
- @fclose($fp);
- $s1 = ‘\<table width\=\”80\%\” border\=\”0\” align\=\”center”\ cellpadding\=\”0\” cellspacing\=\”0\”\-->’;
- $s2 = ‘\<\/table\>’;
- $tmp = array();
- preg_match_all(“/”.$s1.”([^~]*?)”.$s2.”/i”,$data,$tmp);
- $tmp1 = array();
- preg_match_all(“/\<li\>([^~]*?)\<\/li\>/i”,$tmp[0][0],$tmp1);
- return $tmp1[0][0].$tmp1[0][1].$tmp1[0][2];
- }
- function getsoft($host,$port)
- {
- $fp = @fsockopen($host,$port,&$errno,&$errstr,3);
- if(!$fp) return ‘unknown’;
- $get = “GET / HTTP/1.1\r\nHost:”.$host.”\r\nConnection: Close\r\n\r\n”;
- @fputs($fp,$get);
- $data = ”;
- while ($fp && !feof($fp))
- $data .= fread($fp, 1024);
- @fclose($fp);
- $array = explode(“\n”,$data);
- $k = 2;
- for($i = 0;$i < 20;$i++)
- {
- if(stristr($array[$i],’Server’)){$k = $i; break;}
- }
- if(!stristr($array[$k],’Server’)) return ‘unknown’;
- else return str_replace(‘Server’,'服务器软件’,$array[$k]);
- }
- function ping($host,$port)
- {
- $time_start = microtime_float();
- $ip = gethostbyname($host);
- $fp = @fsockopen($host,$port,&$errno,&$errstr,1);
- if(!$fp) return ‘Request timed out.<br>’.”\r\n”;
- $get = “GET / HTTP/1.1\r\nHost:”.$host.”\r\nConnection: Close\r\n\r\n”;
- @fputs($fp,$get);
- @fclose($fp);
- $time_end = microtime_float();
- $time = $time_end – $time_start;
- $time = ceil($time * 1000);
- return ‘Reply from ‘.$ip.’: time=’.$time.’ms<br>’;
- }
- if(isset($_POST['url']) && isset($_POST['duankou']))
- {
- echo ip138($host).’<br><br>’;
- echo ‘<font color="”#FF0000″">’.getsoft($host,$port).’</font><br><br>’;
- echo ‘Pinging ‘.$host.’ ['.gethostbyname($host).'] with Port:’.$port.’ of data:<br><br>’.”\r\n”;
- ob_flush();
- flush();
- for($i = 0;$i < $num;$i++)
- {
- echo ping($host,$port);
- ob_flush();
- flush();
- sleep(1);
- }
- }
- ?></li\>
2,页面内容部分
>>> 您可能感兴趣的文章:
php新浪接口查询ip地理位置
php腾讯ip分享计划获取IP地理位置
php通过IP获取地理位置
PHP通过IP获取地理位置的代码
php通过IP获取地理位置的实例参考
php 获取用户真实IP与地理位置(淘宝IP接口)的实现代码
php根据IP地址获取当前地理位置接口 |