Saya mencari perintah sebaliknya yang menampilkan nama adaptor jaringan untuk alamat IP yang diberikan.
Berdasarkan semua yang saya coba, ini seharusnya bekerja sepertinya Anda mengatakan Anda perlu mendapatkan informasi ini HANYA dari alamat IP yang sudah Anda tentukan dalam contoh Anda.
PROMPT INTERAKTIF UNTUK ALAMAT IP UNTUK MENDAPATKAN NAMA KONEKSI JARINGAN
(Gunakan WMIC
dan beberapa bets FOR
lingkaran token
dan delim
parsing untuk mendapatkan nama koneksi jaringan untuk alamat IP tertentu.)
(Nilai hasil akan bergema ke jendela perintah dan jendela kotak pesan. Itu semua skrip batch tetapi secara dinamis membangun beberapa fungsi skrip VBS untuk menyederhanakan proses bagi siapa pun yang membutuhkan.)
@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
SEMUA SATU-LINER
NATIVE WINDOWS HANYA DENGAN NETSH SEMUA INTERFACES (SEMUA ALAMAT IPv4)
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]*"
WINDOWS NATIVE HANYA DENGAN IPCONFIG SEMUA INTERFACES (SEMUA ALAMAT IPv4)
IPCONFIG | FINDSTR /R "Ethernet* Address.*[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*"
MENGGUNAKAN PCRE2GREP (per @SalvoF)
ALAMAT IP TUNGGAL DITETAPKAN
netsh interface ipv4 show address | pcre2grep -B2 "192\.168\.2\.4" | FIND /V "DHCP"
CARI SEMUA ALAMAT IP
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"
CARI SEMUA ALAMAT IP (Cleaned Up Regex (per @SalvoF))
netsh interface ip show config | pcre2grep "^[A-Z]|IP.*([0-9]{1,3}(\.|)){4}"
Harap dicatat bahwa pcre2grep
saya coba adalah per @SalvoF [+1]
seperti yang dia sarankan tetapi menggunakan .... FIND /V
untuk menghapus baris di atas yang mengandung DHCP
tampaknya mendapatkan output yang diinginkan seperti yang Anda jelaskan. Saya menggunakan NETSH
daripada IPCONFIG
juga.