Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Вниз

как можно изменить шлюз и днс сервер   Найти похожие ветки 

 
Axe__   (2004-01-30 14:02) [0]

Уважаемые мастера
как  мне программно изменить шлюз и днс сервер ?


 
pasha_golub ©   (2004-01-30 14:31) [1]

Вообще-то для этого есть свой форум "Сети"


 
Axe__   (2004-01-30 14:31) [2]

неужели никто не знает?


 
Verg ©   (2004-01-30 14:46) [3]

Насчет шлюза попробуй
CreateIpForwardEntry/DeleteIpForwardEntry
т.е. удалять/добавлять маршрут до 0/0.

А насчет DNS-а, то узнать кофигурацию можно ф-цией
GetNetworkParams, а изменить DNS так, чтобы эти изменения сразу же вступили в силу, не знаю.


 
Wonder ©   (2004-01-30 16:23) [4]

> неужели никто не знает?

Может кто-то и знает, только такое фигней не занимается.


 
Anatoly Podgoretsky ©   (2004-01-30 16:51) [5]

И где сменить, ДНС он же для каждого соединения свой, а шлюзы задаются таблицей маршрутизацией.
В общем все это лишнее, решается системными средствами, в крайнем случае бат файлами, которые пишутся за несколько минут, для изменения таблицы маршрутизации.

Начинаешь рассказывать начиная с цели и с техническими подробностями, может тогда и конкретнее скажут, но вряд ли, поскольку фигней не занимаются.


 
Axe__   (2004-01-30 16:55) [6]

понимаете мне нужно программой включать и отключать доступ к интернет  на компьютере (компьтер подключен через общий доступ)
как можно это осуществить?


 
Anatoly Podgoretsky ©   (2004-01-30 17:06) [7]

Без написания программ, просто выполнить ьат файл, но еще лучше управлять этим на файрволе или прокси, чтобы это было нельзя обойти.


 
Axe__   (2004-01-30 17:22) [8]

а что написать в батнике? я с подобным раньше не сталкивался ,а тут вот надо сделать и все


 
Manulo ©   (2004-01-30 17:47) [9]

C:\>route print

Увидишь табличкеу маршрутизации

C:\>route delete 0.0.0.0
положишь не только интернет, но и сетку в придачу

C:\>route add 0.0.0.0 трям-параметры-брям

вернешь всё на место. пример можно получить

C:\>route /?


 
Verg ©   (2004-01-30 17:53) [10]


> Manulo ©   (30.01.04 17:47) [9]


Та-ак. Хорошо.

Теперь про DNS, пожалуйста.


 
Manulo ©   (2004-01-30 17:57) [11]

Verg
поверь, как только ты удалишь 0.0.0.0, никакой ДНС не страшен будет :)
А если чесно, я не волшебник, а студент, потому не знаю :(


 
Verg ©   (2004-01-30 18:11) [12]


> Manulo ©   (30.01.04 17:57) [11]
> Verg
> поверь, как только ты удалишь 0.0.0.0, никакой ДНС не страшен
> будет :)


Он в одной подсети со мной, так что вижу его и без шлюзов.
И ничего. Не страшно :)


 
Manulo ©   (2004-01-30 18:15) [13]


> Verg ©   (30.01.04 18:11) [12]

Дело в том, что при удалённом 0,0,0,0 это не имеет значения :) Твои пакеты дальше твоего компа не выйдут, а потеряются :) Попробуй, токо не забуть сначала сохранить таблицу маршрутизации
(route print -> tabl.txt), что бы было. с чего реставрировать ;)


 
Verg ©   (2004-01-30 18:32) [14]


> Manulo ©   (30.01.04 18:15) [13]  
> Дело в том, что при удалённом 0,0,0,0 это не имеет значения
> :) Твои пакеты дальше твоего компа не выйдут, а потеряются
> :) Попробуй, токо не забуть сначала сохранить таблицу маршрутизации
> (route print -> tabl.txt), что бы было. с чего реставрировать
> ;)


Тут ты заблуждаешься. Если маршрутная таблица имеет запись о пути на подсеть содержащую адресат, то пакеты прекрасненько по этому пути и будут отправлены. И уже не имеет значения есть default или нет.


 
Manulo ©   (2004-01-30 19:52) [15]

эээ... вообщето, по моему нет. 0,0,0,0 он же вроже как системный маршрутный адрес, либо как его там... Система все пакеты посылает на него, если я не ошибаюсь, а потом уже они выходят за пределы машины... То есть если его прибить, то все пакеты будут теряться. Хотя, насчёт одной подсети я не пробовал, если чесно


 
Manulo ©   (2004-01-30 19:59) [16]

или прибех к чёрту вообще вся таблицу маршрутизации :) тогда точно никакой ДНС нм не страшен :)
А если подумать, то ДНС всего лишь расшифровывает текстовый адрес, и даже если ты получишь ай-пи, то при вытертом 0,0,0,0 твои пакеты, который ты адресуешь, допустим, сайту www.superporno.virus.loh всё равно потеряются :)


 
Axe__   (2004-01-30 20:42) [17]

А на счет функций  CreateIpForwardEntry/DeleteIpForwardEntry
кто-нить знает?


 
Axe__   (2004-01-30 21:03) [18]

А на счет функций  CreateIpForwardEntry/DeleteIpForwardEntry
кто-нить знает?


 
Rouse_ ©   (2004-01-30 21:04) [19]

CreateIpForwardEntry
The CreateIpForwardEntry function creates a route in the local computer"s IP routing table.

DWORD CreateIpForwardEntry(
 PMIB_IPFORWARDROW pRoute  // pointer to route information
);
Parameters
pRoute
[in] Pointer to a MIB_IPFORWARDROW structure that specifies the information for the new route. The caller must specify values for all members of this structure. The caller must specify PROTO_IP_NETMGMT for the dwForwardProto member of MIB_IPFORWARDROW.
Return Values
If the function succeeds, the return value is NO_ERROR.

If the function fails, the return value is one of the following error codes.

Value Meaning
ERROR_INVALID_PARAMETER The pRoute parameter is NULL, SetIpFowardEntry is unable to read from the memory pointed to by pRoute, or one of the members of the MIB_IPFORWARDROW structure is invalid.
ERROR_NOT_SUPPORTED The IP transport is not configured on the local computer.
Other Use FormatMessage to obtain the message string for the returned error.

Remarks
To modify an existing route in the IP routing table, use the SetIpForwardEntry function.

The caller should not specify a routing protocol, for example, PROTO_IP_OSPF, for the dwForwardProto member of the MIB_IPFORWARDROW structure. Routing protocol identifiers are used only to identify route information received through the specified routing protocol. For example, PROTO_IP_OSPF is used only to identify route information received through the OSPF routing protocol.

The dwForwardPolicy member of the MIB_IPFORWARDROW structure is currently unused. The caller should specify zero for this member.

======================

MIB_IPFORWARDROW
The MIB_IPFORWARDROW structure contains information that describes an IP network route.

typedef struct _MIB_IPFORWARDROW {
 DWORD   dwForwardDest;       // IP addr of destination
 DWORD   dwForwardMask;       // subnetwork mask of destination
 DWORD   dwForwardPolicy;     // conditions for multi-path route
 DWORD   dwForwardNextHop;    // IP address of next hop
 DWORD   dwForwardIfIndex;    // index of interface
 DWORD   dwForwardType;       // route type
 DWORD   dwForwardProto;      // protocol that generated route
 DWORD   dwForwardAge;        // age of route
 DWORD   dwForwardNextHopAS;  // autonomous system number
                              // of next hop
 DWORD   dwForwardMetric1;    // protocol-specific metric
 DWORD   dwForwardMetric2;    // protocol-specific metric
 DWORD   dwForwardMetric3;    // protocol-specific metric
 DWORD   dwForwardMetric4;    // protocol-specific metric
 DWORD   dwForwardMetric5;    // protocol-specific metric
} MIB_IPFORWARDROW, *PMIB_IPFORWARDROW;
Members
dwForwardDest
Specifies the IP address of the destination host.
dwForwardMask
Specifies the subnet mask of the destination host.
dwForwardPolicy
Specifies the set of conditions that would cause the selection of a multi-path route. This member is typically in IP TOS format. For more information, see RFC 1354.
dwForwardNextHop
Specifies the IP address of the next hop in the route.
dwForwardIfIndex
Specifies the index of the interface for this route.
dwForwardType
Specifies the route type as defined in RFC 1354. The following list shows the possible values for this member. Value Meaning
4 The next hop is not the final destination (remote route).
3 The next hop is the final destination (local route).
2 The route is invalid.
1 Other.

dwForwardProto
Specifies the protocol that generated the route. See Protocol Identifiers for a list of possible protocols.
dwForwardAge
Specifies the age of the route in seconds.
dwForwardNextHopAS
Specifies the autonomous system number of the next hop.
dwForwardMetric1
Specifies a routing-protocol-specific metric value. This metric value is documented in RFC 1354.
dwForwardMetric2
Specifies a routing-protocol-specific metric value. This metric value is documented in RFC 1354.
dwForwardMetric3
Specifies a routing-protocol-specific metric value. This metric value is documented in RFC 1354.
dwForwardMetric4
Specifies a routing-protocol-specific metric value. This metric value is documented in RFC 1354.
dwForwardMetric5
Specifies a routing-protocol-specific metric value. This metric value is documented in RFC 1354.


 
Verg ©   (2004-01-30 23:43) [20]


> Manulo ©   (30.01.04 19:52) [15]
> эээ... вообщето, по моему нет. 0,0,0,0 он же вроже как системный
> маршрутный адрес, либо как его там... Система все пакеты
> посылает на него, если я не ошибаюсь, а потом уже они выходят
> за пределы машины... То есть если его прибить, то все пакеты
> будут теряться. Хотя, насчёт одной подсети я не пробовал,
> если чесно


Нет, ты неправильно представляешь себе работу маршрутного автомата.
Маршрутная таблица - это подобие (пусть и жалкое) таблицы базы данных. Ключевым(и) полями является так называемый префикс.
Префикс - это комбинция из адреса назанчения и маски сети. Комбинируют так - адрес+длина маски. Длина маски - это количество ненулевых бит в той самой маске. Записывать графически принято так, например: 192.168.0.56/24, где 24 - это и есть длина маски. Т.е. в обычном виде адрес назначения записывается так: 192.168.0.56 netmask 255.255.255.0. Каждая строка марш. таблицы кроме ключа, содержит и собственно способ доставки пакета для этого префикса. Другими словами указание куда собственно девать этот пакет. Эту информацию называют еще next hop. Как правило, это внутренний адрес сетевого интерфейса и, может быть, адрес шлюза, обязательно принадлежащего той же подсети, что и сам сетевой интерфейс. Адрес шлюза указывается в том случае, когда диапазон адресов, определяемых префиксом (адреса назначения) не принадлежат подсети интерфейса. Иначе адрес шлюза не указывается, что означает, что пакет можно будет доставлять прямо адресату в пределах подсети интерфейса (уже на МАС уровне).
 Когда появляется пакет для передачи, автомат маршрутизации имея адрес назначения этого пакета ищет подходящую запись в марш. таблице по правилу наиболее специфичного ключа (префикса). Наиболее специфичный - это такой префикс, длина маски которого наибольша и, в тоже время, адрес назначения пакета совпадает со значением префикса в пределах его длины (длины маски).
Т.о., конечно, запись с ключом (префиксом) 0.0.0.0/0 подходит для любого пакета (поэтому и называется default или путь по-умолчанию, и это всего лиш "термин"), но в то же время, такой префикс наименее специфичен. Поэтому марш-тор не остановит на нем выбор, если в таблице имеются более специфичные и подходящие префиксы.
В понятиях маршрутизатора (как автомата-распределителя пакетов) default ничем не лучше и не хуже других записей в маршр. таблице.
Он такой же как все, его просто назвали особенно.


 
Manulo ©   (2004-01-31 12:13) [21]


> Verg ©   (30.01.04 23:43) [20]


Тогда, по моему, удаление 0,0,0,0 -- это идеальный спосо для интернет кафе отрубить машину от инета, но при этом оставить возможность работать в сети? Я тебя правильно понял?

Задача немножно прикладная, но в данный момент она меня очень интересует


 
Verg ©   (2004-01-31 12:26) [22]


> Тогда, по моему, удаление 0,0,0,0 -- это идеальный спосо
> для интернет кафе отрубить машину от инета, но при этом
> оставить возможность работать в сети? Я тебя правильно понял?


Да, удаление 0/0 приведет именно к такому результату.


 
Manulo ©   (2004-01-31 12:29) [23]

2Verg

Спасибо


 
__Alex__   (2004-01-31 12:49) [24]

Всем спасибо у меня все получилось



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.52 MB
Время: 1.287 c
14-1079013962
Sentinel
2004-03-11 17:06
2004.04.04
Куда-то "подевался" логин.


9-1064428634
BANick
2003-09-24 22:37
2004.04.04
реализация Reflection в OpenGl


14-1078670618
Aga
2004-03-07 17:43
2004.04.04
Resources


4-1072734449
Volkov
2003-12-30 00:47
2004.04.04
Как сменить имя процесса?


1-1078907554
трактор
2004-03-10 11:32
2004.04.04
Как узнать время работы ПК? Бросьте идею





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский