मैं एक रिवर्स कमांड की तलाश कर रहा हूं जो किसी दिए गए आईपी पते के लिए नेटवर्क एडेप्टर का नाम प्रदर्शित करता है।
मेरे द्वारा कोशिश की गई हर चीज के आधार पर, यह काम करना चाहिए आपको लगता है कि आपको यह जानकारी केवल आईपी पते से प्राप्त करने की आवश्यकता है जिसे आप पहले से ही अपने उदाहरण में निर्दिष्ट करते हैं।
आईपी नेटवर्क के लिए इंटरएक्टिव प्रॉम्प्ट नेटवर्क कनेक्शन नाम प्राप्त करने के लिए
( निर्दिष्ट आईपी पते के लिए नेटवर्क कनेक्शन नाम प्राप्त करने के लिए उपयोग करें WMIC
और कुछ बैच FOR
लूप token
और delim
पार्सिंग।)
(परिणाम मान एक कमांड विंडो और एक संदेश बॉक्स विंडो के लिए प्रतिध्वनित होगा। यह सभी बैच स्क्रिप्ट है, लेकिन गतिशील रूप से किसी के लिए प्रक्रिया को सरल बनाने के लिए कुछ VBS स्क्रिप्ट फ़ंक्शन बनाता है।
@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
सभी एक-लाइनर्स
नेटिव विन्डोज़ केवल सभी इंटरफेक्स (सभी IPv4 ADDRESSES) के साथ
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]*"
केवल सभी इंटरकफेक्स (सभी IPv4 ADDRESSES) के साथ स्वाभाविक विंडो
IPCONFIG | FINDSTR /R "Ethernet* Address.*[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*"
PCRE2GREP का उपयोग करना (प्रति @SalvoF)
एकल आईपी पता निर्दिष्ट
netsh interface ipv4 show address | pcre2grep -B2 "192\.168\.2\.4" | FIND /V "DHCP"
सभी आईपी पते खोजें
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"
सभी आईपी पते खोजें (Regex (प्रति @SalvoF) साफ)
netsh interface ip show config | pcre2grep "^[A-Z]|IP.*([0-9]{1,3}(\.|)){4}"
कृपया ध्यान दें कि pcre2grep
मैंने कोशिश की @SalvoF प्रति के [+1]
रूप में वह सुझाव दिया है, लेकिन .... का उपयोग कर FIND /V
ऊपर लाइन से हटाने के DHCP
लिए वांछित उत्पादन प्राप्त करने के लिए लगता है जैसा कि आप वर्णित है। मैंने इसके NETSH
बजाय इस्तेमाल किया IPCONFIG
।