|
|
|
| Использовать,
ip2long от PHP
или
INET_ATON от мускула?
И какой тип поля выбрать.
я так понял для ip2long пойдет INT
а для INET_ATON только BIGINT?
какой макс. значение у INET_ATON...
и что там на счет IPv6. у вас такие гости были? | |
|
|
|
|
|
|
|
для: а-я
(12.02.2008 в 19:56)
| | хотя, при
mysql> SELECT INET_ATON('255.255.255.255');
+------------------------------+
| INET_ATON('255.255.255.255') |
+------------------------------+
| 4294967295 |
+------------------------------+
1 row in set (0.00 sec)
|
4294967295 = int(10) unsigned
значит INT подойдет. это так? | |
|
|
|
|
|
|
|
для: а-я
(12.02.2008 в 19:56)
| | - | |
|
|
|
|
|
|
|
для: а-я
(12.02.2008 в 19:56)
| | а разве inet_aton и ip2long не одно и то же?
просто первое - средство мускуля, а второе - пхпшное..
тип поля конечно int в этом случае | |
|
|
|
|
|
|
|
для: mechanic
(13.02.2008 в 09:52)
| | >а разве inet_aton и ip2long не одно и то же?
нет. это разные функции...
inet_aton - получает только положит.. числа от 0 до 4294967295
а
ip2long - имеет отриц. значиния от -2147483648 до 2147483647 | |
|
|
|
|
|
|
|
для: а-я
(13.02.2008 в 19:34)
| | думаю не все так ужасно
вот что пишет ru2.php.net про ip2long():
<?php
$ip = gethostbyname('www.example.com');
$long = ip2long($ip);
if ($long == -1 || $long === FALSE) {
echo 'Invalid IP, please try again';
} else {
echo $ip . "\n"; // 192.0.34.166
echo $long . "\n"; // -1073732954
printf("%u\n", ip2long($ip)); // 3221234342
}
?>
т.е. мускуль просто использует беззнаковый диапазон, а пхп - со знаком.. | |
|
|
|