![]() |
работа с диапазонами ip адресов
Задача такая:
1. Выяснить IP адрес машины, на которой запущен скрипт. 2. В зависимости от того, в какой диапазон IP попадает машина выполнить определённую команду. Пример: Комп. с IP попадающим в диапазон [192.168.10.1-192.168.10.29] При выполнении скрипта отрабатывается команда net use z: \\192.168.10.10\share Комп. с IP попадающим в диапазон [192.168.10.30-192.168.10.59] При выполнении скрипта отрабатывается команда net use z: \\192.168.10.40\share И т.д. Подскажите что почитать, или как примерно сделать :) |
Цитата:
Цитата:
Код:
$aIP = StringSplit(@IPAddress1, '.') |
Цитата:
За код спасибо!!! |
Через _VersionCompare надёжнее:
Код:
#include <Misc.au3> |
ну и еще вариант UDF - с расширенным контролем ошибок:
Код:
If _IPAddressIsInRange("192.168.10.1", "192.168.10.29") Then |
Creat0R, amel27,
Если я правильно понял в первом примере используется дополнительный модуль: Код:
#include <Misc.au3> А можно немного подробнее описать Функцию _IpAddressIsRange, если есть время :) На самом деле, диапазонов намного больше, кроме того, оказывается различны даже подсети, т.е. примерно так: 192.168.106.0; 192.168.65.0; 192.168.47.0 и т.д. это имеет значения в алгоритме работы Функции ? И ещё, где можно свежую справку скачать, я раньше пользовался справкой версии 3.2.5.4, сейчас версия 3.3.1.3, или там не много изменений ? |
Цитата:
Цитата:
Цитата:
- API ф-ция inet_addr из Ws2_32.dll преобразует адрес в целое число (4 байта), где каждый байт отвечает за один октет; - порядок байтов в полученном значении обратный: младший байт отвечает за старший октет и т.д., поэтому перед сравнением порядок байтов нужно "перевернуть", чтобы вес октета соответствовал весу байта; - после этого операция сравнения адресов идентична сравнению целых чисел; - кроме прочего inet_addr проверяет корректность IP адреса, выдавая ошибку на адреса типа "300.1.1.1" |
|
Цитата:
|
Время: 09:35. |
Время: 09:35.
© OSzone.net 2001-