|
Как узнать IP-адрес удаленного компьютера?Узнать IP-адрес удаленного компьютера можно, например, с помощью Microsoft Winsock control.Некоторые особенности кода: Во-первых, для TCP-соединения с удаленным сервером мы будем использовать порт 139, на котором "сидит" NETBIOS. Как правило, этот порт доступен всегда. А самое интересное, метод Connect является асинхронным - то есть возврат из него осуществляется сразу же, не дожидаясь установления соединения. Чтобы узнать о соединении (или о произошедшей ошибке), нам нужно дождаться события Connect (или, соответственно, события Error). Реализовать это в скрипте не так уж и просто. Воспользуемся простейшим вариантом - после метода Connect покажем message box, а после получения события - закроем его. В-третьих, обратите внимание, как мы из скрипта закрываем диалог - с помощью метода SendKeys стандартного объекта WScript.Shell мы посылаем диалогу сообщение о нажатии клавиши Escape. Листинг: ip_remote.vbsOption Explicit Const AppName = "Remote IP" Dim Server Server = InputBox("Enter server name:", AppName) If Len(Server) = 0 Then WScript.Quit Dim Winsock Set Winsock = WScript.CreateObject("MSWinsock.Winsock", "Winsock_") Winsock.Connect Server, 139 Dim Shell Set Shell = WScript.CreateObject("WScript.Shell") MsgBox "Please wait...", vbInformation, AppName Set Winsock = Nothing Set Shell = Nothing Sub Winsock_Connect MsgBox "IP address for " & Server & " is " & _ Winsock.RemoteHostIP, vbInformation, AppName CloseMsgBox End Sub Sub Winsock_Error(Number, Description, Scode, Source, _ HelpFile, HelpContext, CancelDisplay) MsgBox "Error " & Number & vbNewLine & Description, vbCritical, AppName CloseMsgBox End Sub Sub CloseMsgBox Shell.AppActivate AppName Shell.SendKeys "{ESC}" End Sub Смотри также
|