Docfxit Posted May 2, 2020 Share Posted May 2, 2020 (edited) I have a script that lists all network interfaces to a file. Opt("WinWaitDelay", 100) Opt("WinTitleMatchMode", 4) Opt("WinDetectHiddenText", 1) Opt("MouseCoordMode", 0) Opt("TrayIconDebug", 1) ;0-off ; Set so that tray displays current line number Global $CMD FileDelete(@ScriptDir & "\StaticIPAddressInterfaces.txt") FileWrite(@ScriptDir & "\StaticIPAddressInterfaces.txt" ,(_DosRun('netsh interface ipv4 show interfaces') & @CRLF)) On my computer the StaticIPAddressInterfaces.txt file looks like this: Idx Met MTU State Name --- ---------- ---------- ------------ --------------------------- 7 45 1500 connected Wi-Fi 1 75 4294967295 connected Loopback Pseudo-Interface 1 27 65 1500 disconnected Bluetooth Network Connection 16 25 1500 connected Ethernet 9 25 1500 disconnected Local Area Connection* 16 17 25 1500 disconnected Local Area Connection* 17 11 25 1500 connected VirtualBox Host-Only Network #3 15 25 1500 disconnected PdaNet Broadband Connection I would like some help in reading the file and selecting the LAN interface. From what I have seen the possibilities are: Ethernet Ethernet 2 Local Area Connection Local Area Connection (with some number) Thanks, Docfxit Edited May 2, 2020 by Docfxit Link to comment Share on other sites More sharing options...
TheXman Posted May 2, 2020 Share Posted May 2, 2020 35 minutes ago, Docfxit said: I would like some help in reading the file and selecting the LAN interface. You have been a member of this forum for 15 years and you need help reading a file and parsing out some information from it? What have you tried so far? Exactly what type of help are you looking for, can you be a little more specific? What do you mean by "current LAN interface"? By what criteria is one supposed to determine which interface is the "current LAN interface"? Why wouldn't "Wi-Fi" be considered a LAN interface? As you can, your request is lacking some significant details. CryptoNG UDF: Cryptography API: Next Gen jq UDF: Powerful and Flexible JSON Processor | jqPlayground: An Interactive JSON Processor Xml2Json UDF: Transform XML to JSON | HttpApi UDF: HTTP Server API | Roku Remote: Example Script About Me How To Ask Good Questions On Technical And Scientific Forums (Detailed) | How to Ask Good Technical Questions (Brief) "Any fool can know. The point is to understand." -Albert Einstein "If you think you're a big fish, it's probably because you only swim in small ponds." ~TheXman Link to comment Share on other sites More sharing options...
water Posted May 2, 2020 Share Posted May 2, 2020 BTW: With WMI you can query the interfaces using SQL (kind of) like a database. In the example scripts forum you'll find Scriptomatic. It generates AutoIt scripts for you to query the needed information. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Link to comment Share on other sites More sharing options...
MattHiggs Posted May 2, 2020 Share Posted May 2, 2020 (edited) expandcollapse popup$wbemFlagReturnImmediately = 0x10 $wbemFlagForwardOnly = 0x20 $colItems = "" $sComputer = "localhost" $Output="" $Output = $Output & "Computer: " & $sComputer & @CRLF $oWMIService = ObjGet("winmgmts:\\" & $sComputer & "\ROOT\CIMV2") $colItems = $oWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE", "WQL", _ $wbemFlagReturnImmediately + $wbemFlagForwardOnly) If IsObj($colItems) Then For $objItem In $colItems $Output = $Output & "ArpAlwaysSourceRoute: " & $objItem.ArpAlwaysSourceRoute & @CRLF $Output = $Output & "ArpUseEtherSNAP: " & $objItem.ArpUseEtherSNAP & @CRLF $Output = $Output & "Caption: " & $objItem.Caption & @CRLF $Output = $Output & "DatabasePath: " & $objItem.DatabasePath & @CRLF $Output = $Output & "DeadGWDetectEnabled: " & $objItem.DeadGWDetectEnabled & @CRLF $strDefaultIPGateway = $objItem.DefaultIPGateway(0) $Output = $Output & "DefaultIPGateway: " & $strDefaultIPGateway & @CRLF $Output = $Output & "DefaultTOS: " & $objItem.DefaultTOS & @CRLF $Output = $Output & "DefaultTTL: " & $objItem.DefaultTTL & @CRLF $Output = $Output & "Description: " & $objItem.Description & @CRLF $Output = $Output & "DHCPEnabled: " & $objItem.DHCPEnabled & @CRLF $Output = $Output & "DHCPLeaseExpires: " & WMIDateStringToDate($objItem.DHCPLeaseExpires) & @CRLF $Output = $Output & "DHCPLeaseObtained: " & WMIDateStringToDate($objItem.DHCPLeaseObtained) & @CRLF $Output = $Output & "DHCPServer: " & $objItem.DHCPServer & @CRLF $Output = $Output & "DNSDomain: " & $objItem.DNSDomain & @CRLF $strDNSDomainSuffixSearchOrder = $objItem.DNSDomainSuffixSearchOrder(0) $Output = $Output & "DNSDomainSuffixSearchOrder: " & $strDNSDomainSuffixSearchOrder & @CRLF $Output = $Output & "DNSEnabledForWINSResolution: " & $objItem.DNSEnabledForWINSResolution & @CRLF $Output = $Output & "DNSHostName: " & $objItem.DNSHostName & @CRLF $strDNSServerSearchOrder = $objItem.DNSServerSearchOrder(0) $Output = $Output & "DNSServerSearchOrder: " & $strDNSServerSearchOrder & @CRLF $Output = $Output & "DomainDNSRegistrationEnabled: " & $objItem.DomainDNSRegistrationEnabled & @CRLF $Output = $Output & "ForwardBufferMemory: " & $objItem.ForwardBufferMemory & @CRLF $Output = $Output & "FullDNSRegistrationEnabled: " & $objItem.FullDNSRegistrationEnabled & @CRLF $strGatewayCostMetric = $objItem.GatewayCostMetric(0) $Output = $Output & "GatewayCostMetric: " & $strGatewayCostMetric & @CRLF $Output = $Output & "IGMPLevel: " & $objItem.IGMPLevel & @CRLF $Output = $Output & "Index: " & $objItem.Index & @CRLF $Output = $Output & "InterfaceIndex: " & $objItem.InterfaceIndex & @CRLF $strIPAddress = $objItem.IPAddress(0) $Output = $Output & "IPAddress: " & $strIPAddress & @CRLF $Output = $Output & "IPConnectionMetric: " & $objItem.IPConnectionMetric & @CRLF $Output = $Output & "IPEnabled: " & $objItem.IPEnabled & @CRLF $Output = $Output & "IPFilterSecurityEnabled: " & $objItem.IPFilterSecurityEnabled & @CRLF $Output = $Output & "IPPortSecurityEnabled: " & $objItem.IPPortSecurityEnabled & @CRLF $strIPSubnet = $objItem.IPSubnet(0) $Output = $Output & "IPSubnet: " & $strIPSubnet & @CRLF $Output = $Output & "IPUseZeroBroadcast: " & $objItem.IPUseZeroBroadcast & @CRLF $Output = $Output & "IPXAddress: " & $objItem.IPXAddress & @CRLF $Output = $Output & "IPXEnabled: " & $objItem.IPXEnabled & @CRLF $strIPXFrameType = $objItem.IPXFrameType(0) $Output = $Output & "IPXFrameType: " & $strIPXFrameType & @CRLF $Output = $Output & "IPXMediaType: " & $objItem.IPXMediaType & @CRLF $strIPXNetworkNumber = $objItem.IPXNetworkNumber(0) $Output = $Output & "IPXNetworkNumber: " & $strIPXNetworkNumber & @CRLF $Output = $Output & "IPXVirtualNetNumber: " & $objItem.IPXVirtualNetNumber & @CRLF $Output = $Output & "KeepAliveInterval: " & $objItem.KeepAliveInterval & @CRLF $Output = $Output & "KeepAliveTime: " & $objItem.KeepAliveTime & @CRLF $Output = $Output & "MACAddress: " & $objItem.MACAddress & @CRLF $Output = $Output & "MTU: " & $objItem.MTU & @CRLF $Output = $Output & "NumForwardPackets: " & $objItem.NumForwardPackets & @CRLF $Output = $Output & "PMTUBHDetectEnabled: " & $objItem.PMTUBHDetectEnabled & @CRLF $Output = $Output & "PMTUDiscoveryEnabled: " & $objItem.PMTUDiscoveryEnabled & @CRLF $Output = $Output & "ServiceName: " & $objItem.ServiceName & @CRLF $Output = $Output & "SettingID: " & $objItem.SettingID & @CRLF $Output = $Output & "TcpipNetbiosOptions: " & $objItem.TcpipNetbiosOptions & @CRLF $Output = $Output & "TcpMaxConnectRetransmissions: " & $objItem.TcpMaxConnectRetransmissions & @CRLF $Output = $Output & "TcpMaxDataRetransmissions: " & $objItem.TcpMaxDataRetransmissions & @CRLF $Output = $Output & "TcpNumConnections: " & $objItem.TcpNumConnections & @CRLF $Output = $Output & "TcpUseRFC1122UrgentPointer: " & $objItem.TcpUseRFC1122UrgentPointer & @CRLF $Output = $Output & "TcpWindowSize: " & $objItem.TcpWindowSize & @CRLF $Output = $Output & "WINSEnableLMHostsLookup: " & $objItem.WINSEnableLMHostsLookup & @CRLF $Output = $Output & "WINSHostLookupFile: " & $objItem.WINSHostLookupFile & @CRLF $Output = $Output & "WINSPrimaryServer: " & $objItem.WINSPrimaryServer & @CRLF $Output = $Output & "WINSScopeID: " & $objItem.WINSScopeID & @CRLF $Output = $Output & "WINSSecondaryServer: " & $objItem.WINSSecondaryServer & @CRLF Next ConsoleWrite($Output) FileWrite(@TempDir & "\Win32_NetworkAdapterConfiguration.TXT", $Output ) Run(@ComSpec & " /c start " & @TempDir & "\Win32_NetworkAdapterConfiguration.TXT" ) Else MsgBox(0,"WMI Output","No WMI Objects Found for class: " & "Win32_NetworkAdapterConfiguration" ) EndIf Func WMIDateStringToDate($dtmDate) Return (StringMid($dtmDate, 5, 2) & "/" & _ StringMid($dtmDate, 7, 2) & "/" & StringLeft($dtmDate, 4) _ & " " & StringMid($dtmDate, 9, 2) & ":" & StringMid($dtmDate, 11, 2) & ":" & StringMid($dtmDate,13, 2)) EndFunc Edited May 2, 2020 by MattHiggs Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now