Как использовать GeoLite City, как получить startIpNum и endIpNum
Хорошо, я скачал с http://dev.maxmind.com/geoip/legacy/geolite/ GeoLite City
база данных.
Значения в GeoLiteCity-Blocks.csv
startIpNum,endIpNum,locId
"16777216","16777471","17"
Однако я понятия не имею, как конвертировать ips в эти диапазоны startIpNum и endIpNum. Я не могу найти на их сайте, и они ссылаются на здесь
Какой алгоритм конвертировать ip v4 в этот?
большое спасибо
2 ответа
Решение
Это зависит от того, какой язык программирования вы используете.
В php вы можете использовать ip2long и long2ip для работы с ips.
string long2ip ( string $proper_address )
The function long2ip() generates an Internet address in dotted format (i.e.: aaa.bbb.ccc.ddd) from the proper address representation.
http://php.net/manual/en/function.long2ip.php
Пример с указанными вами ips: http://sandbox.onlinephpfunctions.com/code/3decd3d4818a02d65b9a80cf2dc1c70297b0d2d5
Если бы вы использовали Python, вы могли бы использовать
>>> import socket, struct
>>> socket.inet_ntoa(struct.pack('!L', 16777216))
'1.0.0.0'
конвертировать из целого числа в строку IP.