PHP擷取網域名稱及網域名稱IP的步驟

來源:互聯網
上載者:User
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 擷取網域名稱資訊的第三種方法:
同樣是這一段網域名稱我們使用第三種方法擷取網域名稱,我們採用自訂函數獲得。
 $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);}}?>

最後一種方法則是使用正則了,這一步比較複雜,要實現複雜的網域名稱匹配就得更複雜的正則,我只是簡單的提供一下思路,大家多嘗試。
 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];}?>
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.