How verify whether browser arrived via IPv6, IPv4, domain or number
| From: | Leith Bade | Date: | Wed, 18 Aug 2010 06:46:21 +0000 |
| Subject: | How verify whether browser arrived via IPv6, IPv4, domain or number | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-307515@lists.php.net to get a copy of this message | ||
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?
Also what is the best way in php to check if an address is IPv4 or IPv6?
Some people scan for ":" or ".", others use filter_var(), but these both
seem clunky to me.
Can anyone think of a better way?
Thanks,
Leith Bade
leith@leithalweapon.geek.nz