Je recherche une commande inverse qui affiche le nom de la carte réseau pour une adresse IP donnée.
Sur la base de tout ce que j'ai essayé, cela devrait fonctionner, vous semblez avoir besoin d'obtenir ces informations UNIQUEMENT à partir de l'adresse IP que vous avez déjà spécifiée dans votre exemple.
DEMANDE INTERACTIVE D'ADRESSE IP POUR OBTENIR UN NOM DE CONNEXION RÉSEAU
(Utilisez WMIC
et une FOR
boucle token
et une delim
analyse par lots pour obtenir le nom de la connexion réseau pour une adresse IP spécifiée.)
(La valeur de résultat se répercutera dans une fenêtre de commande et une fenêtre de boîte de message. Ce sont tous des scripts batch mais créent dynamiquement certaines fonctions de script VBS pour simplifier le processus pour quiconque en a besoin.)
@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
TOUS LES ONE-LINERS
FENÊTRES AUTOCHTONES UNIQUEMENT AVEC NETSH TOUTES LES INTERFACES (TOUTES LES ADRESSES 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]*"
FENÊTRES NATIVES UNIQUEMENT AVEC IPCONFIG TOUTES LES INTERFACES (TOUTES LES ADRESSES IPv4)
IPCONFIG | FINDSTR /R "Ethernet* Address.*[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*"
UTILISATION DE PCRE2GREP (par @SalvoF)
ADRESSE IP UNIQUE SPÉCIFIÉE
netsh interface ipv4 show address | pcre2grep -B2 "192\.168\.2\.4" | FIND /V "DHCP"
TROUVEZ TOUTES LES ADRESSES 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"
TROUVEZ TOUTES LES ADRESSES IP (Cleaned Up Regex (per @SalvoF))
netsh interface ip show config | pcre2grep "^[A-Z]|IP.*([0-9]{1,3}(\.|)){4}"
Veuillez noter que pcre2grep
j'ai essayé est par @SalvoF [+1]
comme il l'a suggéré mais en utilisant le .... FIND /V
pour supprimer la ligne ci-dessus contenant DHCP
semble obtenir la sortie souhaitée comme vous l'avez décrit. J'ai utilisé NETSH
plutôt que IPCONFIG
bien.