Как я могу определить, что кабель Ethernet был подключен к другой сети, и если это так, выключить компьютер?
У меня проблема на работе, когда сотрудник - системный администратор, и он с ума сходит от LogMeIn. Я даже пытался переместить все три моих компьютера в другую сеть, управляемую другим отделом и доменом. Он просто отключает сетевой кабель 1 и сетевой кабель 2 и перебирает все мои настройки через LogMein. Я не знаю точных подробностей о том, как он это делает, но мне удалось поймать соединение в журнале событий, где записано имя его компьютера, IP-адрес и порт 64474. Это огромная проблема!
Может кто-нибудь сказать, как я могу прослушать сеть 1 и принять ее, но если подключены кабели сети 2, немедленно выключите компьютер
Программа "LogMeIn" может даже подключиться к компьютеру без присмотра и стать администратором.
Мой план состоит в том, чтобы установить 32-разрядную версию Visual Basic 2010 на 64-разрядном компьютере с операционной системой Windows 7 и написать программу, которая будет хранить переменную в файле, который будет содержать требуемый сетевой IP-адрес или строку, которая будет сравниваться с IP-адресом, имеющимся на данном компьютере.
Требуемая сеть использует DHCP, а нежелательная - это интрасеть, использующая диапазон фиксированных IP-адресов (например, 10.20.2.0 - 10.20.2.99).
Теперь вот мой вопрос:
Единственный доступный компилятор - это 32-разрядная версия Visual Studio 2010. Какого типа данные мне нужно захватывать, кроме IP-адресов, чтобы знать, что другая сеть была подключена? Я могу справиться, где хранить данные и как их сравнить.
Вот что я начинаю только с IP:
Dim HostName As String = Dns.GetHostName()
Dim thisHost As IPHostEntry = Dns.GetHostByName(HostName)
Dim thisIpAddr As String = thisHost.AddressList(0).ToString
Debug.WriteLine(thisIpAddr)
Может быть, я мог бы сделать это простым пакетным файлом, поместив его в автозагрузку, как показано ниже, но как мне справиться с загрузкой без подключения к сети Ethernet?
@echo off
for /f "delims=[] tokens=2" %%a in ('ping -4 -n 1 %ComputerName% ^| findstr [') do set NetworkIP=%%a
echo Network IP: %NetworkIP%
for /f %%a in ('powershell Invoke-RestMethod api.ipify.org') do set PublicIP=%%a
echo Public IP: %PublicIP%
IF %PublicIP% EQU 75.555.55.555 (
echo Its Me!
)ELSE (shutdown /f
)