Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Можно ли изменить МАС адрес средствами vbs

Ответить
Настройки темы
VBS/WSH/JS - [решено] Можно ли изменить МАС адрес средствами vbs

Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Отправить PM | Цитировать


Хочу спросить можно ли изменить МАС адрес сетевой карты посредством vbs?
Если да то как?
И ищо. Можно ли получит МАС удаленной машины имея IP этой машины?
Я понимаю что есть куча прог которые это делают. Просто я хочу знать может ли это осуществить VBScript.
Если глупый вопрос не обижайтесь я новичок ))

Отправлено: 01:42, 15-06-2009

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


1. можно через реестр, но потребуется перезагрузка:
Код: Выделить весь код
Const HKEY_LOCAL_MACHINE = &H80000002

strComputer = "."
strMACAddr  = "001E0B3D3F0B"
strKeyPath  = "SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}"

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objReg=GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")

Set colNetCards = objWMIService.ExecQuery( _
    "Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")

For Each objNetCard in colNetCards
    strSettingID = objNetCard.SettingID
    If Len(strSettingID)=38 Then Exit For
Next

objReg.EnumKey HKEY_LOCAL_MACHINE,strKeyPath,arrSubKeys

For Each SubKey In arrSubKeys
    objReg.GetStringValue HKEY_LOCAL_MACHINE, _
      strKeyPath & "\" & SubKey, "NetCfgInstanceId", strValue
    If Not(IsNull(strValue)) And strValue = strSettingID Then
        objReg.SetStringValue HKEY_LOCAL_MACHINE, _
          strKeyPath & "\" & SubKey, "NetworkAddress", strNewMACAddr
        Exit For
    End If
Next
2. аналогично (вместо точки подставить имя компьютера):
Код: Выделить весь код
strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colNetCards = objWMIService.ExecQuery( _
    "Select IPAddress From Win32_NetworkAdapterConfiguration Where IPEnabled = True")

For Each objNetCard in colNetCards
    strIPAddress = objNetCard.IPAddress(0)
Next

WScript.Echo strIPAddress
Это сообщение посчитали полезным следующие участники:

Отправлено: 05:42, 15-06-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Отправить PM | Цитировать


За первое спасибо.
Но второе ты наверное не так понял.
Я сказал «Можно ли узнать МАС адрес удаленной машины имея ёё IP»

Отправлено: 19:35, 15-06-2009 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Аналогичнейшим же вышеприведённому скрипту amel27 [он, скорее всего, просто промахнулся в определении]:
Код: Выделить весь код
strDestIPAdress = "192.168.0.1"

Set objWMIService = GetObject("winmgmts:\\" & strDestIPAdress & "\root\cimv2")
Set colNetCards = objWMIService.ExecQuery( _
    "Select Caption, IPAddress, MACAddress From Win32_NetworkAdapterConfiguration Where IPEnabled = True")

For Each objNetCard in colNetCards
    For Each elem In objNetCard.IPAddress
        If elem = strDestIPAdress Then
            WScript.Echo objNetCard.Caption, objNetCard.MACAddress
        End If
    Next
Next
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:56, 15-06-2009 | #4


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Вот ещё один вариант, с использованием сторонней библиотеки:
Код: Выделить весь код
Option Explicit

Const sscNBSTATSuccess = 0

Dim objNBTNetwork
Dim strMACAddress
Dim strDestAddress


strDestAddress = "192.168.223.3"

' «SScripting.NBTNetwork» из библиотеки «System Scripting Runtime» (http://www.netal.com/ssr.htm)
Set objNBTNetwork = WScript.CreateObject("SScripting.NBTNetwork")

If objNBTNetwork.QueryNodeStatus(strDestAddress, 1000, strMACAddress) = sscNBSTATSuccess Then
    WScript.Echo strMACAddress
Else
    WScript.Echo "Can't connect to [" & strDestAddress & "]."
End If

WScript.Quit 0

Отправлено: 22:49, 15-06-2009 | #5


Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Отправить PM | Цитировать


Всем спасибо. Тема закрыта.

Отправлено: 17:22, 17-06-2009 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Можно ли изменить МАС адрес средствами vbs

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Изменить IP адрес на сервере (контроллер домена) grigbk Microsoft Windows NT/2000/2003 3 24-12-2009 15:32
CMD/BAT - [решено] изменить MAC-адрес Intexid Скриптовые языки администрирования Windows 2 05-11-2009 07:11
Прочее - Как изменить МАС-адрес? CUMMINS Сетевое оборудование 2 07-10-2009 09:56
Proxy/NAT - [решено] WinProxy назначил неверный адрес, не могу его изменить 130586 Сетевые технологии 4 07-08-2008 16:16
Двойной МАС-адрес serius Сетевые технологии 1 23-04-2004 21:44




 
Переход