2010-05-03 190 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

相关问题