|
Как узнать IP-адрес удаленного компьютера?Узнать IP-адрес удаленного компьютера можно, например, с помощью Microsoft Winsock control.Некоторые особенности кода: Во-первых, для TCP-соединения с удаленным сервером мы будем использовать порт 139, на котором "сидит" NETBIOS. Как правило, этот порт доступен всегда. А самое интересное, метод Connect является асинхронным - то есть возврат из него осуществляется сразу же, не дожидаясь установления соединения. Чтобы узнать о соединении (или о произошедшей ошибке), нам нужно дождаться события Connect (или, соответственно, события Error). Реализовать это в скрипте не так уж и просто. Воспользуемся простейшим вариантом - после метода Connect покажем message box, а после получения события - закроем его. В-третьих, обратите внимание, как мы из скрипта закрываем диалог - с помощью метода SendKeys стандартного объекта WScript.Shell мы посылаем диалогу сообщение о нажатии клавиши Escape. Листинг: ip_remote.vbs
Option 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
Смотри также
|