Mange tak for hjælpen.
Jeg har været ude og købe 3 bøger/hæfter
Start på PHP 5
Php og Mysql for absolutte begyndere
avanceret PHP
Jeg håber, at det kan løse mine problemer frem over.....!! !
men tak for hjælpen denne gang :-)
Nu er en ip jo ikke en streng men et tal, så det er mere nærliggende at gemme den som et tal. Det gør det også meget nemmere hvis du vil matche et helt subnet, og så sparer man omkring 70% plads.
Tabel layout:
CREATE TABLE ipaddr (
ip INT UNSIGNED PRIMARY KEY NOT NULL
);
IP'er indsættes med
INSERT INTO ipaddr (ip) VALUES INET_NTOA('192.168.1.1');
Du kan matche en ip sådan:
<?php
$res=mysql_query('SELECT ip FROM ipaddr WHERE ip=INET_ATON(\\''.$_SERVER['REMOTE_ADDR'].'\\') LIMIT 1');
if(mysql_num_rows($res))
{
echo('Din ip blev fundet');
}
else
{
echo('Din ip blev ikke fundet');
}
?>
Eller et subnet:
<?php
$res=mysql_query('SELECT ip FROM ipaddr WHERE ip & INET_ATON(\\'255.255.255.0\\')=INET_ATON(\\''.$_SERVER['REMOTE_ADDR'].'\\') & INET_ATON(\\'255.255.255.0\\') LIMIT 1');
...
?>
Eller et range:
<?php
$res=mysql_query('SELECT ip FROM ipaddr WHERE ip BETWEEN INET_ATON(\\'192.168.1.1\\') AND INET_ATON(\\'192.168.1.20\\') LIMIT 1');
...
?>
--
Thus, I conclude
jimmi