Я использовал сервер Wamp. Я пытался использовать
c:\wamp\bin\mysql\mysql5.5.8\bin\mysqldump -uroot -p db_name > c:\somefolder\filename.sql
root
- мое имя пользователя для mysql, и если у вас есть какой-либо пароль, укажите его с помощью:
-p[yourpassword]
Надеюсь, что он работает.
Лучший подход является использованием IMO побитовых операторов. Например, 123.123.48.0/22
представляет (123<<24)+(123<<16)+(48<<8)+0
(=2071670784; это могло бы быть отрицательным числом) как числовой IP-адрес на 32 бита, и -1<<(32-22)
=-1024 как маска. С этим, и аналогично, Ваш тестовый IP-адрес, преобразованный в число, можно сделать:
(inputIP & testMask) == testIP
, Например, 123.123.49.123 находится в том диапазоне, как 2071671163 & -1024
2071670784
Так, вот некоторые функции инструмента:
function IPnumber(IPaddress) {
var ip = IPaddress.match(/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/);
if(ip) {
return (+ip[1]<<24) + (+ip[2]<<16) + (+ip[3]<<8) + (+ip[4]);
}
// else ... ?
return null;
}
function IPmask(maskSize) {
return -1<<(32-maskSize)
}
тест:
(IPnumber('123.123.49.123') & IPmask('22')) == IPnumber('123.123.48.0')
урожаи true
.
В случае, если Ваша маска находится в формате '255.255.252.0', затем можно использовать функцию IPnumber для маски, также.
Преобразуйте более низкий IP и верхний IP в диапазоне к целым числам и сохраните диапазон в дб, затем удостоверяются, что оба столбца индексируются.
Первое, что пришло на ум (псевдо код):
function ipmap(w,x,y,z) {
return 16777216*w + 65536*x + 256*y + z;
}
var masks = array[ipmap(128,0,0,0), ipmap(196,0,0,0), ..., ipmap(255,255,255,255)]
function lowrange(w, x, y, z, rangelength) {
return ipmap(w, x, y, z) & masks[rangelength]
}
function hirange(w, x, y, z, rangelength) {
return lowrange(w, x, y, z, ,rangelength) + ipmap(255,255,255,255) - masks[rangelength];
}
, Который должен сделать это.
, Чтобы найти, падает ли конкретный IP в каком-либо из диапазонов, преобразуйте его в целое число и сделайте:
SELECT COUNT(*) FROM ipranges WHERE lowrange <= 1234567 AND 1234567 <= highrange
оптимизатор запросов должен смочь ускорить это значительно.