VERSION 5.00 Begin VB.Form Form1 Caption = "NBTSTAT" ClientHeight = 4275 ClientLeft = 60 ClientTop = 345 ClientWidth = 5775 LinkTopic = "Form1" ScaleHeight = 4275 ScaleWidth = 5775 StartUpPosition = 3 'Windows Default Begin VB.CommandButton Command2 Caption = "Command2" Height = 255 Left = 4560 TabIndex = 4 Top = 120 Visible = 0 'False Width = 975 End Begin VB.TextBox Text3 Height = 375 Left = 240 TabIndex = 3 Top = 600 Width = 2055 End Begin VB.TextBox Text2 Enabled = 0 'False Height = 375 Left = 240 TabIndex = 2 Top = 120 Width = 2055 End Begin VB.CommandButton Command1 Caption = "NBTSTAT" Default = -1 'True Height = 495 Left = 3000 TabIndex = 1 Top = 240 Width = 1215 End Begin VB.TextBox Text1 Height = 3135 Left = 720 MultiLine = -1 'True ScrollBars = 2 'Vertical TabIndex = 0 Top = 1080 Width = 4935 End End Attribute VB_Name = "Form1" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Option Explicit Dim sock As Long Dim LocalServer As SOCK_ADDR Dim rmtserver As SOCK_ADDR Private Sub Command1_Click() Dim CR As Long Dim rqstPkt As NBPkt Dim sDataToNet As String Dim i As Integer Text1.Text = "" Debug.Print "heure = "; Time sock = Socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP) Debug.Print "sock = "; sock If sock < 0 Then MsgBox "Erreur sur la creation du socket = " & WSAGetLastError() Exit Sub End If LocalServer.sin_family = AF_INET LocalServer.sin_port = 0 LocalServer.sin_addr.S_addr = INADDR_ANY Debug.Print "bind = "; CR CR = bind(sock, LocalServer, Len(LocalServer)) Debug.Print "bind = "; CR If CR < 0 Then MsgBox "Erreur sur bind : " & WSAGetLastError() FermerSocket sock Exit Sub End If rmtserver.sin_family = AF_INET rmtserver.sin_port = htons(137) rmtserver.sin_addr.S_addr = inet_addr(Text3.Text) rmtserver.sin_zero(0) = 0 CR = connect(sock, rmtserver, Len(rmtserver)) Debug.Print "Connect = "; CR If CR < 0 Then MsgBox "Erreur sur Connect : " & WSAGetLastError() FermerSocket sock Exit Sub End If rqstPkt.XactionID = htons(12345) rqstPkt.Flags = htons(&H10) rqstPkt.QCount = htons(1) rqstPkt.ACount = 0 rqstPkt.NSCount = 0 rqstPkt.ARCount = 0 Dim tempString As String tempString = Chr$(&H20) ' Netbios name, length must be 32 (decimal) ' The following is the Nibbled result of the string "* " tempString = tempString + "CKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" CopyMemory rqstPkt.QName(0), ByVal tempString, Len(tempString) rqstPkt.QType = htons(&H21) ' NetBIOS NODE STATUS Resource Record rqstPkt.QClass = htons(&H1) ' Internet class ' Convert the Data which is to be transmitted into a string sDataToNet = "" sDataToNet = String(Len(rqstPkt), 0) CopyMemory ByVal sDataToNet, rqstPkt, Len(sDataToNet) Debug.Print "szbuf = "; sDataToNet Dim long1 As Long long1 = Len(sDataToNet) ReDim buff(long1 + 1) As Byte For i = 1 To long1 buff(i - 1) = Asc(Mid(sDataToNet, i, 1)) Next buff(long1) = 0 CR = send(sock, buff(0), long1, 0) Debug.Print "send = "; CR If CR < 0 Then MsgBox "Erreur sur l'envoi du message = " & WSAGetLastError() FermerSocket sock Exit Sub End If Debug.Print "heure = "; Time CR = WSAAsyncSelect(sock, Command2.hwnd, &H202, FD_READ) Debug.Print "WSAAsyncSelect = "; CR If CR < 0 Then MsgBox "Erreur sur WSAAsyncSelect = " & WSAGetLastError() FermerSocket sock Exit Sub End If End Sub Private Sub command2_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Text1.Text = ProcessRcvdData(Recevoir(sock)) End Sub Private Sub Form_Load() Dim wsadata As WSA_DATA Dim CR As Long CR = WSAStartup(&H101, wsadata) If CR <> 0 Then MsgBox "Mauvaise version de Winsock.dll" Exit Sub End If Text2.Text = NomMachine() Text3.Text = IPMachine(NomMachine()) End Sub Private Sub Form_Unload(Cancel As Integer) FermerSocket sock End Sub