Re: How verify whether browser arrived via IPv6, IPv4, domain or number
| From: | Per Jessen | Date: | Wed, 18 Aug 2010 07:18:36 +0000 |
| Subject: | Re: How verify whether browser arrived via IPv6, IPv4, domain or number | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-307516@lists.php.net to get a copy of this message | ||
Leith Bade wrote:
> I want to take $_SERVER['SERVER_NAME'] and figure out whether the user
> arrived by typing an IPv6-only, IPv4-only or dual IPv4/IPv6 DNS
> address.
>
> It should also handle the case where the user enters a numeric address
> in one of the formats the sockets inet_addr() function can handle.
> Such as IPv4/IPv6 dotted decimal, octal, hex, DWORD, etc.
>
> So far I have thought up this:
>
> 1. Use gethostbyname($_SERVER['SERVER_NAME']) to get an address
> 2. Check this address to see if it is IPv4/IPv6
>
> Will this always work?
gethostbyname() does not return any IPv6 addresses. You need
getaddrinfo(), but that is AFAIK not yet implemented for php.
> Also what is the best way in php to check if an address is IPv4 or
> IPv6?
preg_match() ?
--
Per Jessen, Zürich (16.2°C)