phpbar.de logo

Mailinglisten-Archive

[php] IP-Adresse analysieren

[php] IP-Adresse analysieren

Norbert Pfeiffer norbert at itbw.de
Son Dez 24 14:30:33 CET 2006


Hi,

On Fri, Dec 22, 2006 at 06:16:57PM +0100, Daniel Lüdeking wrote:
> na gut, anders: "Google half mir bei der Suche nach einer
> zuverlässigen Methode in PHP nicht weiter." :-)
hmm,
wieso tun sich viele mit solchen Kleinigkeiten so schwer?
<?php
function is_local($ipnr) {
    $AA = explode('.', $ipnr);
    return (($ipnr == '127.0.0.1')||
           ($AA[0] == '10')||
           (($AA[0] == '169')&&($AA[1] == '254'))||
           (($AA[0] == '172')&&(($AA[1] >= '16')&&($AA[1] <= '31')))||
           (($AA[0] == '192')&&($AA[1] == '168'))) ? true : false;
}

$IPs = array(
'127.0.0.0',
'127.0.0.1',
'127.0.0.2',
'9.111.233.125',
'10.33.115.227',
'11.115.227.39',
'169.253.11.11',
'169.254.33.99',
'169.255.55.77',
'172.11.133.55',
'172.16.11.155',
'172.22.11.133',
'172.31.111.77',
'172.33.55.177',
'192.167.11.33',
'192.168.55.77',
'192.169.11.99');

foreach($IPs as $ipnbr) {
    echo sprintf('% 15s', $ipnbr).' - '.is_local($ipnbr)."\n";
}
?>
ergibt:
----------------------------------
      127.0.0.0 -
      127.0.0.1 - 1
      127.0.0.2 -
  9.111.233.125 -
  10.33.115.227 - 1
  11.115.227.39 -
  169.253.11.11 -
  169.254.33.99 - 1
  169.255.55.77 -
  172.11.133.55 -
  172.16.11.155 - 1
  172.22.11.133 - 1
  172.31.111.77 - 1
  172.33.55.177 -
  192.167.11.33 -
  192.168.55.77 - 1
  192.169.11.99 -
----------------------------------
Laufzeit:     0,719 ms - PHP 5.1.4

allseits ein "Frohes Fest" ...


m. b. G.  Norbert
-------------------
Notruf 0177-1741686
-------------------
e.o.m. 


php::bar PHP Wiki   -   Listenarchive