2010-05-03 193 views
2

好吧,很簡單的問題。所以這對你來說是個好消息,我想。是否可以使用PHP將域名解析爲IP地址?

更透徹的解釋:

我有一個PHP腳本,讓我的網址添加到數據庫。我希望腳本將URL解析爲IP地址,以便將其存儲。然而,一些URL的是這樣的:

http://111.111.111.111/~example/index.php

所以還需要與合作。

我不是確實這是可能的,但它只是有道理的。

所以:是否有可能,如果有,如何?

+3

Yust一個評論。普通網址無法使用IP地址。例如,如果你嘗試輸入我的服務器的IP地址,它會給你一個404,因爲你有錯誤的'hostname'-hreader。只是覺得我讓你知道... – Alxandr 2010-05-03 23:08:54

+0

我不明白你的意思。你是說'http:// 111.111.111.111 /〜example/example.php'不行嗎? – Rob 2010-05-04 12:35:16

回答

2

gethostbyname

echo gethostbyname('stackoverflow.com'); // 69.59.196.211 

您可以使用parse_url抓住從URL中的主機:

$urlParts = parse_url('http://111.111.111.111/~example/index.php'); 

print_r($urlParts); 

/* 
Array 
(
    [scheme] => http 
    [host] => 111.111.111.111 
    [path] => /~example/index.php 
) 
*/ 
+0

謝謝,這有助於很多。特別是parse_url() – Rob 2010-05-04 13:10:42

+0

不客氣。很高興我能幫上忙。 – webbiedave 2010-05-04 14:25:50

1

gethostbyname()

$ip = gethostbyname('www.example.com'); 

需要注意的是,如果網站位於共享託管服務器上,則不能保證您的鏈接仍然有效。

1

gethostbynamel() - 獲取對應於給定的Internet主機名的IPv4的地址列表


用法:

$ips = gethostbynamel('stackoverflow.com'); 

/* 
Array 
(
    [0] => 69.59.196.211 
) 
*/ 
echo '<pre>'; 
print_r($ips); 
echo '</pre>'; 

$ips = gethostbynamel('google.com'); 

/* 
Array 
(
    [0] => 74.125.39.105 
    [1] => 74.125.39.106 
    [2] => 74.125.39.147 
    [3] => 74.125.39.99 
    [4] => 74.125.39.103 
    [5] => 74.125.39.104 
) 
*/ 
echo '<pre>'; 
print_r($ips); 
echo '</pre>'; 

獲取主機出URL,你可以用這一個班輪:

// 111.111.111.111 
echo parse_url('http://111.111.111.111/~example/index.php', PHP_URL_HOST); 
+0

爲什麼downvote? – 2010-05-04 00:20:42

相關問題