Belirli bir IP adresi için ağ bağdaştırıcısının adını gösteren bir ters komut arıyorum.
Denediğim her şeye dayanarak, bu çalışmanın SADECE örneğinizde zaten belirttiğiniz IP adresinden almanız gerektiğini söylüyorsunuz.
AĞ BAĞLANTI ADI ALMAK İÇİN IP ADRESİ İÇİN ETKİLEŞİMLİ İSTEM
( Belirli bir IP adresi için ağ bağlantısı adını almak üzere WMIC
ve bazı toplu FOR
döngü token
ve delim
ayrıştırma kullanın.)
(Sonuç değeri bir komut penceresi ve bir mesaj kutusu penceresine yankılanacaktır. Tüm toplu komut dosyasıdır, ancak ihtiyacı olan herkes için işlemi basitleştirmek için dinamik olarak bazı VBS komut dosyası işlevleri oluşturur.)
@ECHO ON
:SetTempFiles
SET tmpIPaddr=%tmp%\~tmpipaddress.vbs
SET tmpNetConName1=%tmp%\~tmpNetConName1.txt
SET tmpNetConName2=%tmp%\~tmpNetConName2.txt
SET tmpBatFile=%tmp%\~tmpBatch.cmd
SET tmpVBNetCon=%tmp%\~tmpVBNetCon.vbs
IF EXIST "%tmpIPaddr%" DEL /F /Q "%tmpIPaddr%"
IF EXIST "%tmpNetConName1%" DEL /Q /F "%tmpNetConName1%"
IF EXIST "%tmpNetConName2%" DEL /Q /F "%tmpNetConName2%"
IF EXIST "%tmpBatFile%" DEL /Q /F "%tmpBatFile%"
IF EXIST "%tmpVBNetCon%" DEL /Q /F "%tmpVBNetCon%"
:InputBox
SET msgboxTitle=IP ADDRESS
SET msgboxLine1=Enter the IP address to get its Windows connection name
>"%tmpIPaddr%" ECHO wsh.echo inputbox("%msgboxLine1%","%msgboxTitle%")
FOR /F "tokens=*" %%N IN ('cscript //nologo "%tmpIPaddr%"') DO CALL :setvariables %%N
GOTO EOF
:setvariables
SET IPAddress=%~1
FOR /F "USEBACKQ TOKENS=3 DELIMS=," %%A IN (`"WMIC NICCONFIG GET IPADDRESS,MACADDRESS /FORMAT:CSV | FIND /I "%IPAddress%""`) DO (SET MACAddress=%%~A)
FOR /F "USEBACKQ TOKENS=3 DELIMS=," %%B IN (`"WMIC NIC GET MACADDRESS,NETCONNECTIONID /FORMAT:CSV | FIND /I "%MACAddress%""`) DO ECHO(%%~B>>"%tmpNetConName1%"
::: Parse Empty Lines
FINDSTR "." "%tmpNetConName1%">"%tmpNetConName2%"
::: Build Dynamic Batch with ECHO'd Network Connection Value
FOR /F "tokens=*" %%C IN (%tmpNetConName2%) DO ECHO ECHO %%~C>>"%tmpBatFile%"
IF NOT EXIST "%tmpBatFile%" GOTO :NullExit
START "" "%tmpBatFile%"
::: Build Dynamic VBS with Message Box Network Connection Value
FOR /F "tokens=*" %%C IN (%tmpNetConName2%) DO (SET vbNetconName=%%~C)
ECHO msgbox "%vbNetconName%",0,"%vbNetconName%">"%tmpVBNetCon%"
START /B "" "%tmpVBNetCon%"
EXIT /B
:NullExit
ECHO msgbox "Cannot find MAC Address, check to confirm IP Address was correct.",0,"Invalid IP">"%tmpVBNetCon%"
START /B "" "%tmpVBNetCon%"
EXIT /B
TÜM TEK KAT
YALNIZCA TÜM ARAYÜZLERLE YERLİ PENCERELER (TÜM IPv4 ADRESLERİ)
NETSH INT IP SHOW CONFIG | FINDSTR /R "Configuration for interface.* Address.*[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*"
YALNIZCA IPCONFIG TÜM ARAYÜZLERLE (TÜM IPv4 ADRESLERİ) YERLİ PENCERELER
IPCONFIG | FINDSTR /R "Ethernet* Address.*[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*"
PCRE2GREP KULLANMA (@SalvoF başına)
TEKLİ IP ADRESİ BELİRTİLDİ
netsh interface ipv4 show address | pcre2grep -B2 "192\.168\.2\.4" | FIND /V "DHCP"
TÜM IP ADRESLERİNİ BUL
netsh interface ip show config | pcre2grep -B2 ^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$ | FIND /V "DHCP" | FIND /V "Gate" | FIND /V "Metric" | FIND /V "Subnet"
TÜM IP ADRESLERİNİ BUL (Temizlenmiş Normal İfade (@SalvoF başına))
netsh interface ip show config | pcre2grep "^[A-Z]|IP.*([0-9]{1,3}(\.|)){4}"
pcre2grep
Ben denedim [+1]
o önerildiği gibi @SalvoF başına olduğunu unutmayın ama FIND /V
yukarıdaki satırı kaldırmak için .... kullanarak DHCP
tarif ettiğiniz gibi istenen çıktı almak gibi görünüyor. Ben de kullanmak NETSH
yerine kullandım IPCONFIG
.