Home >Backend Development >PHP Tutorial > PHP获取域名及域名IP的步骤

PHP获取域名及域名IP的步骤

WBOY
WBOYOriginal
2016-06-13 12:33:471063browse

PHP获取域名及域名IP的方法
最近在做的一个项目用到获取域名和IP的功能,大致有以下几种方法。

获取域名IP的方法可以使用内置的函数gethostbyname获取,例如:

echo gethostbyname("www.jbxue.com");

以上则会直接输出域名所对应的的IP,当然各个地方测试的结果是不一样的,因为百度的服务器也不只有一台,我这边的ip是115.239.210.27;
下面是获取域名的方法,例如有一段网址是这样的:http://www.jbxue.com/all-the-resources-of-this-blog.html
//则会输出www.jbxue.com
//全局数组
echo $_SERVER[“HTTP_HOST”];

我在本地测试则会输出localhost
第二种获得域名的方法则是使用:parse_url函数;
$url ="http://www.jbxue.com/index.php?referer=kakata.com";
$arr=parse_url($url);
echo "
";
    print_r($arr);
    echo "
“;

这段代码获得一个数组,当我们打印这个数组,你会一目了然;
Array
(
[scheme] => http
[host] => www.jbxue.com
[path] => /index.php
[query] => referer=jbxue.com
)
scheme对应着协议,host则对应着域名,path对应着执行文件的路径,query则对应着相关的参数;

php 获取域名信息的第三种方法:
同样是这一段域名我们使用第三种方法获取域名,我们采用自定义函数获得。
<!--?php <br ?--> $url ="http://www.jbxue.com/index.php?referer=jbxue.com";
get_host($url);
function get_host($url){
//首先替换掉http://
$url=str_replace("http://","",$url);
//获得去掉http://url的/最先出现的位置
$position=strpos($url,"/");
//如果没有斜杠则表明url里面没有参数,直接返回url,
//否则截取字符串
if($position==false){
echo $url;
}else{
echo substr($url,0,$position);
}
}
?>

最后一种方法则是使用正则了,这一步比较复杂,要实现复杂的域名匹配就得更复杂的正则,我只是简单的提供一下思路,大家多尝试。
<!--?php <br ?--> header("Content-type:text/html;charset=utf-8");
$url ="http://www.jbxue.com/index.php?referer=jbxue.com";
$pattern="/(http:\/\/)?(.*)\//";
if(preg_match($pattern,$url,$arr)){
echo "匹配成功";
echo "匹配到了".$arr[2];
}
?>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn