php端口函数:ping端口函数与url地址函数获取端口等信息

发布时间:2019-11-24编辑:脚本学堂
分享一个php实现的ping端口函数,在php中使用socket方式实现的ping端口函数,并介绍了PHP URL地址获取函数代码,包括获取ip地址与端口等的方法与代码。

一、php实现的ping端口函数。

例子:
 

复制代码 代码示例:
<?php
/*
 * @author xujiajay
 * @date   2010-10-7
 * @function   可以ping端口的php函数
 *
 */
error_reporting(E_ERROR);
header("content-Type: text/html; charset=utf-8");
set_time_limit(120);
$host = isset($_POST['url']) ? chop(str_replace('http://','',$_POST['url'])) : 'www.baidu.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 getsoft($host,$port)
{
$fp = @fsockopen($host,$port,&$errno,&$errstr,3);
if(!$fp) return 'unknown';
$get = "GET / HTTP/1.1rnHost:".$host."rnConnection: Closernrn";
@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.'."rn";
$get = "GET / HTTP/1.1rnHost:".$host."rnConnection: Closernrn";
@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';
}
if(isset($_POST['url']) && isset($_POST['duankou']))
{
echo '<font color="#FF0000">'.getsoft($host,$port).'</font>';
echo 'Pinging '.$host.' ['.gethostbyname($host).'] with Port:'.$port.' of data:'."rn";
ob_flush();
flush();
for($i = 0;$i < $num;$i++)
{
echo ping($host,$port);
ob_flush();
flush();
sleep(1);
}
}
?>
<form method="POST">
域名/IP:<input type="text" name="url" value="<?php echo $host;?>" size="50">
端口:<input type="text" name="duankou" value="<?php echo $port;?>" size="10">
<input type="submit" value="ping">
</form>

二,php url地址获取函数代码(端口等)

php url地址获取端口等信息

1、php 获得当前的脚本网址(只有路径)
代码:
 

复制代码 代码示例:
<?php
function GetCurUrl()
{
if(!empty($_SERVER["REQUEST_URI"]))
{
$scrtName = $_SERVER["REQUEST_URI"];
$nowurl = $scrtName;
}
else
{
$scrtName = $_SERVER["PHP_SELF"];
if(empty($_SERVER["QUERY_STRING"]))
{
$nowurl = $scrtName;
}
else
{
$nowurl = $scrtName."?".$_SERVER["QUERY_STRING"];
}
}
return $nowurl;
}
//实例调用方法
//echo GEtCurUrl();

2、php 获取url地址不包含路径(域名或IP地址
 

复制代码 代码示例:
function getServerName()
{
$ServerName = strtolower($_SERVER['SERVER_NAME']?$_SERVER['SERVER_NAME']:$_SERVER['HTTP_HOST']);
if( strpos($ServerName,'http://') )
{
return str_replace('http://','',$ServerName);
}
return $ServerName;
}
//实例调用方法
echo getServerName();

3、php 获取url地址包含端口路径
 

echo 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];

可以获取到地址栏的一些信息,域名,端口参数等。

例子:
 

复制代码 代码示例:
<?php
//获取域名或主机地址
echo $_SERVER['HTTP_HOST']."<br>";
//获取网页地址
echo $_SERVER['PHP_SELF']."<br>";
//获取网址参数
echo $_SERVER["QUERY_STRING"]."<br>";
//来源网页的详细地址
echo $_SERVER['HTTP_REFERER']."<br>";
?>

您可能感兴趣的文章: