nbtstat -A
Verfasst: 02.11.2006 15:18
nbtstat -a
über den beigeligten link ist ein visual basic beispiel das den kommandozeilen tool nbtstat mit parameter -a
nachstellt.
http://www.vbenreseau.com/netbios/exemplenetbios2.htm
ich habe ein teil des programm übersetzt und hänge seit ein paar tage fest!
beigefügt ist was ich bissher übersetzt habe:
das problem ist das generieren des string das gesendet wird
ich glaube das in vb diese eine bstr string ist und ich handle diese als normale string???
wer kann Helfen?
über den beigeligten link ist ein visual basic beispiel das den kommandozeilen tool nbtstat mit parameter -a
nachstellt.
http://www.vbenreseau.com/netbios/exemplenetbios2.htm
ich habe ein teil des programm übersetzt und hänge seit ein paar tage fest!
beigefügt ist was ich bissher übersetzt habe:
Code: Alles auswählen
#SOCK_DGRAM = 2
#AF_INET = 2 ; internetwork: UDP, TCP, etc.
#PF_INET = #AF_INET
#IPPROTO_UDP = 17
#__x_sockaddr_COMMON_SIZE = 2 ;SizeOf(unsigned short int)
#INADDR_ANY=0
Structure NBPkt
XactionID.w
Flags.w
QCount.w
ACount.w
NSCount.w
ARCount.w
QName.b [34]
QType.w
QClass.w
EndStructure
Structure IN_ADDR
S_addr.l
EndStructure
Structure SOCK_ADDR
sin_family.w ;(unsigned short int)
sin_port.w; /* Port number.
sin_addr.IN_ADDR ; /* Internet address.
sin_zero.b[SizeOf(SOCKADDR)-#__x_sockaddr_COMMON_SIZE-SizeOf(WORD)-SizeOf(IN_ADDR)] ; Pad To size of `struct x_sockaddr'.
; +8
EndStructure
LocalServer.SOCK_ADDR
rmtserver.SOCK_ADDR
InitNetwork()
Time$ = FormatDate("%hh:%ii:%ss", Date())
Debug "time: "+Time$
sock.l = SOCKET_(#AF_INET,#SOCK_DGRAM ,#IPPROTO_UDP)
Debug"sock: " +Str(sock)
If sock < 0
Debug "error cannot create socket!"
End
Else
;Debug sock
LocalServer\sin_family = #AF_INET
LocalServer\sin_port = 0
LocalServer\sin_addr\S_addr = #INADDR_ANY
CR = bind_(sock, @LocalServer, SizeOf(SOCK_ADDR))
Debug "bind: "+Str(CR)
;Debug.Print "bind = "; CR
;If CR < 0 ;Then
; MsgBox "Erreur sur bind : " & WSAGetLastError()
; FermerSocket sock
; Exit Sub
;End If
;EndIf
rmtserver\sin_family = #AF_INET
rmtserver\sin_port = htons_(137)
rmtserver\sin_addr\S_addr = inet_addr_("192.168.64.5")
rmtserver\sin_zero = 0
rmtserver_l.l = 16
;rtmserver.s=Space(255)
;CR = connect(sock, rmtserver, Len(rmtserver))
;CR =connect_(sock,@rmtserver,SizeOf(rmtserver))
CR =connect_(sock,@rmtserver,SizeOf(SOCK_ADDR))
Debug "connect: "+Str(CR)
;Debug.Print "Connect = "; CR
;If CR < 0 Then
; MsgBox "Erreur sur Connect : " & WSAGetLastError()
; FermerSocket sock
; Exit Sub
;End If
EndIf
rqstPkt.NBPkt
rqstPkt\XactionID = htons_(12345)
rqstPkt\Flags = htons_(16)
rqstPkt\QCount = htons_(1)
rqstPkt\ACount = 0
rqstPkt\NSCount = 0
rqstPkt\ARCount = 0
Debug Len(rqstPkt)
;' The following is the Nibbled result of the string "* "
tempString.s = Chr(32)+ "CKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; ' Netbios name, length must be 32 (decimal)
MoveMemory( @tempString,@rqstPkt\QName[0], 34)
rqstPkt\QType = htons_(33) ;' NetBIOS NODE STATUS Resource Record
rqstPkt\QClass = htons_(1) ;' Internet class
;' Convert the Data which is to be transmitted into a string
sDataToNet = LSet (Chr(nul),SizeOf(NBPkt), Chr(nul))
MoveMemory(@rqstPkt,@sDataToNet,SizeOf(NBPkt))
Debug PeekS(@sDataToNet,SizeOf(NBPkt))
Debug MemoryStringLength(@sDataToNet)
#MAX_BUFF_SIZE = 10000
Dim buff.b (#MAX_BUFF_SIZE)
long1 = SizeOf(rqstPkt)
ReDim buff.b(long1 + 1)
For i = 1 To long1
buff(i - 1) = Asc(Mid(sDataToNet, i, 1))
Next
buff(long1) = 0
nicht mehr die grösse hat die eigentlich haben müsste.MoveMemory(@rqstPkt,@sDataToNet,SizeOf(NBPkt))
ich glaube das in vb diese eine bstr string ist und ich handle diese als normale string???
wer kann Helfen?