以下是使用AutoItX编写的服务端和客户端的示例代码:

服务端代码:

#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <MsgBoxConstants.au3>

Local $CLIENT_INFO[10][10] ; 用于存储客户端信息的数组

; 创建GUI界面
Local $hGUI = GUICreate("服务端", 400, 300)
Local $ListView = GUICtrlCreateListView("机器名|IP|MAC|子网掩码|网关|DNS|分辨率|操作系统版本|上线时间|下线时间", 10, 10, 380, 280, BitOR($LVS_SHOWSELALWAYS, $LVS_SINGLESEL))
_GUICtrlListView_SetExtendedListViewStyle($ListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))

GUISetState(@SW_SHOW)

While 1
    Local $iMsg = GUIGetMsg()
    Switch $iMsg
        Case $GUI_EVENT_CLOSE
            ExitLoop
    EndSwitch
WEnd

Func AddClientInfo($aInfo)
    _ArrayAdd($CLIENT_INFO, $aInfo)
    _GUICtrlListView_AddItem($ListView, $aInfo[0])
    For $i = 1 To UBound($aInfo) - 1
        _GUICtrlListView_AddSubItem($ListView, _GUICtrlListView_GetItemCount($ListView) - 1, $aInfo[$i], $i)
    Next
EndFunc

客户端代码:

#include <Array.au3>
#include <AutoItConstants.au3>
#include <GUIConstantsEx.au3>
#include <WinAPI.au3>
#include <WinAPIEx.au3>
#include <WinAPIFiles.au3>
#include <WinAPISys.au3>

Local $SERVER_IP = "127.0.0.1" ; 服务端IP地址
Local $SERVER_PORT = 8888 ; 服务端端口号

; 获取客户端信息
Local $sMachineName = @ComputerName
Local $sIP = _GetIPAddress()
Local $sMAC = _GetMACAddress()
Local $sSubnetMask = _GetSubnetMask()
Local $sGateway = _GetGateway()
Local $sDNS = _GetDNS()
Local $sResolution = @DesktopWidth & "x" & @DesktopHeight
Local $sOSVersion = @OSVersion
Local $sOnlineTime = @Hour & ":" & @Min & ":" & @Sec
Local $sOfflineTime = ""

; 创建Socket连接
Local $iSocket = TCPConnect($SERVER_IP, $SERVER_PORT)
If $iSocket = -1 Then
    MsgBox($MB_ICONERROR, "错误", "无法连接到服务端")
    Exit
EndIf

; 发送客户端信息到服务端
Local $aClientInfo[10] = [$sMachineName, $sIP, $sMAC, $sSubnetMask, $sGateway, $sDNS, $sResolution, $sOSVersion, $sOnlineTime, $sOfflineTime]
Local $sData = _ArrayToString($aClientInfo, "|")
TCPSend($iSocket, $sData)

; 关闭Socket连接
TCPCloseSocket($iSocket)

Func _GetIPAddress()
    Local $aIPConfig = IPConfigGet()
    For $i = 1 To $aIPConfig[0][0]
        If $aIPConfig[$i][0] = "IPv4" Then
            Return $aIPConfig[$i][1]
        EndIf
    Next
    Return ""
EndFunc

Func _GetMACAddress()
    Local $sMAC = ""
    Local $aAdapterInfo = _WinAPI_GetAdapterInfo()
    For $i = 1 To $aAdapterInfo[0][0]
        If $aAdapterInfo[$i][2] <> "" Then
            $sMAC = $aAdapterInfo[$i][2]
            ExitLoop
        EndIf
    Next
    Return $sMAC
EndFunc

Func _GetSubnetMask()
    Local $aIPConfig = IPConfigGet()
    For $i = 1 To $aIPConfig[0][0]
        If $aIPConfig[$i][0] = "IPv4" Then
            Return $aIPConfig[$i][2]
        EndIf
    Next
    Return ""
EndFunc

Func _GetGateway()
    Local $aIPConfig = IPConfigGet()
    For $i = 1 To $aIPConfig[0][0]
        If $aIPConfig[$i][0] = "IPv4" Then
            Return $aIPConfig[$i][3]
        EndIf
    Next
    Return ""
EndFunc

Func _GetDNS()
    Local $aIPConfig = IPConfigGet()
    For $i = 1 To $aIPConfig[0][0]
        If $aIPConfig[$i][0] = "IPv4" Then
            Return $aIPConfig[$i][4]
        EndIf
    Next
    Return ""
EndFunc

注意:以上代码仅为示例,未包含完整的错误处理和异常情况处理。在运行代码前,请确保已经安装了AutoIt和AutoItX,并将AutoItX的DLL文件(AutoItX3.dll)放置在正确的目录下

使用 autoitx编写一个服务端和客户端服务端要求能显示客户端所发送过来的数据并带有GUI界面以列表显示客户端接收到的信息。接收信息包括显示机器名、IP、MAC、子网掩码、网关、DNS、分辨率、操作系统版本上线时间下线时间客户端要求能获取Windows系统的机器名、IP、MAC、子网掩码、网关、DNS、分辨率操作系统版本上线时间下线时间

原文地址: https://www.cveoy.top/t/topic/imU3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录