Мне нужно написать приложение win32 c / c ++, которое сможет определить, подключен ли ПК, на котором он работает, к одной из 2 сетей. Первая сеть - это локальная сеть компании (которая не имеет подключения к Интернету), а вторая - автономный коммутатор, к которому подключен один ПК (ПК, на котором запущена программа).
Я довольно новичок в сетевом программировании, но до сих пор я пытался проверить, можно ли подключить сетевой диск, который находится в нашей локальной сети. Это прекрасно работает, если ПК подключен к локальной сети, сопоставление дисков выполнено успешно, поэтому обнаружение локальной сети прошло успешно. Однако, если ПК подключен к коммутатору, это приводит к ОЧЕНЬ длинному таймауту, который не подходит, так как задержит программу настолько, что сделает ее непригодной для использования.
У кого-нибудь есть альтернативные предложения?
Я использую c / c ++ в VS 6.0
[Update]
Испытывая несколько разных идей и рассматривая некоторые из предложенных ниже предложений, я подумал, что мне следует дополнить дополнительной информацией как можно больше (если не все) предложений, которые, по моему мнению, не сработают.
(1) Вышеупомянутая ЛВС вообще не имеет внешних подключений, она полностью изолирована, поэтому невозможно разрешение внешних DNS или пингующих веб-сайтов.
(2) Имя хоста, MAC-адрес, IP-адрес, шлюз по умолчанию, подсеть и т. Д. (В основном все, что вы видите в ipconfig -all), все настраиваются вручную (не динамически от маршрутизатора), поэтому проверка любой из этих настроек вернет то же самое подключен ли он к локальной сети или к коммутатору.
(3) Из-за пункта (2) любые попытки связаться с коммутатором кажутся безуспешными, фактически почти все сетевые команды (ping, arp и т. Д.) Кажутся неудачными - я думаю, что из-за машины, пытающейся подключиться в ЛВС, когда его там нет: - (
Одна вещь, которую я нашел, которая работает - это пинг IP-адреса шлюза по умолчанию, который истекает при подключении к коммутатору. Это нормально, так как я могу сократить время ожидания пинга, чтобы он не зависал целую вечность, а был немного хак, и я, безусловно, был бы признателен за любые лучшие решения.
Спасибо