Hallo,
ich bin dabei ein Netzwerk Tool zu bauen, dazu brauche ich den Entsprechenden Computername der das gegen Programm Ausführt. Ich möchte aber keinen Server und Clienten machen damit man nicht von ausen ran kann!
Was ich nun genau wissen möchte ist: Wie kann ich die Computernamen aller Computer im Netzwerk Herausfinden? ich möchte diese dann in einem Listview anzeigen.
Computername
- Tsuki-Namida
- Beiträge: 633
- Registriert: 17.11.2005 13:27
- Kontaktdaten:
Damit der Code auch mal im Forum steht (aus dem Codearchiv)
Und noch ein paar Stichworte damit er in der Suche auftaucht:
Ip und Computernamen im Lan Netzwerk
Code: Alles auswählen
; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=834&highlight=
; Author: PWS32
; Date: 02. May 2003
Structure HOSTENT
h_name.l
h_aliases.l
h_addrtype.w
h_length.w
h_addr_list.l
EndStructure
Structure SERVER_INFO_101
dwPlatformId.l
lpszServerName.l
dwVersionMajor.l
dwVersionMinor.l
dwType.l
lpszComment.l
EndStructure
#MAX_PREFERRED_LENGTH = -1
#SV_TYPE_ALL = $FFFFFFFF
#NERR_SUCCESS = 0
#ERROR_MORE_DATA = 234
#MainWindow = 100
#MMTB = 200
Global MMTextBox
Procedure Message (M.s)
WriteMessage.s
WriteMessage +Chr(13)+Chr(10)+M
SetGadgetText(#MMTB,GetGadgetText(#MMTB) + WriteMessage )
SendMessage_(MMTextBox,$00B6,0,10000)
EndProcedure
Procedure.s GetIPbyName (NameIP.s)
TheIPAdress.s
If InitNetwork()
pHostinfo = gethostbyname_(NameIP)
If pHostinfo = 0
TheIPAdress = "Unable to resolve domain name"
Else
CopyMemory (pHostinfo, hostinfo.HOSTENT, SizeOf(HOSTENT))
If hostinfo\h_addrtype <> #AF_INET
MessageRequester("Info","A non-IP address was returned",0)
Else
While PeekL(hostinfo\h_addr_list+AdressNumber*4)
ipAddress = PeekL(hostinfo\h_addr_list+AdressNumber*4)
TheIPAdress = StrU(PeekB(ipAddress),0)+"."+StrU(PeekB(ipAddress+1),0)+"."+StrU(PeekB(ipAddress+2),0)+"."+StrU(PeekB(ipAddress+3),0)
AdressNumber+1
Wend
EndIf
EndIf
Else
MessageRequester("Info","Network can't be initialized",0)
EndIf
ProcedureReturn TheIPAdress
EndProcedure
Procedure GetLANList()
IPResult.s
se101.SERVER_INFO_101
nStructSize = SizeOf(SERVER_INFO_101)
RetCode = NetServerEnum_(0, 101, @bufptr, #MAX_PREFERRED_LENGTH, @dwEntriesread, @dwTotalentries, #SV_TYPE_ALL, 0, @dwResumehandle)
If RetCode = #NERR_SUCCESS And RetCode <> #ERROR_MORE_DATA
For i = 0 To dwEntriesread - 1
CopyMemory( bufptr + (nStructSize * i),@se101, nStructSize)
Buffer.s=Space(512)
Result=WideCharToMultiByte_(#CP_ACP ,0,se101\lpszServerName,255,@Buffer.s,512,0,0)
IPResult = GetIPbyName (Buffer)
Message ("No : "+ Str(i+1) + " " + Buffer + " --> " + IPResult)
Next
Else
MessageRequester("Info","Failed",0)
EndIf
NetApiBufferFree_(bufptr)
SendMessage_(MMTextBox,$00B6,0,30)
EndProcedure
hWnd = OpenWindow(#MainWindow, 100, 150, 300, 250, #PB_Window_SystemMenu , " Name > IP")
If CreateGadgetList(WindowID())
ButtonGadget(1, 1, 224, WindowWidth()-1,26, "Get Name and IP")
MMTextBox=StringGadget(#MMTB, 0, 2, WindowWidth()-1,WindowHeight()-30 ,"Name > IP by P.Spisla 2003 ",#PB_String_Multiline|#ES_AUTOVSCROLL|#WS_VSCROLL|#PB_String_ReadOnly)
Message("--------------------------------------------")
EndIf
;GetLANList()
Repeat
Select WaitWindowEvent()
Case #PB_EventGadget
Select EventGadgetID()
Case 1
Message ("Examine the Network, please wait !")
GetLANList()
Message ("End of List")
EndSelect
Case #PB_EventCloseWindow
End
EndSelect
ForEver
; ExecutableFormat=Windows
; FirstLine=1
; EOF
Ip und Computernamen im Lan Netzwerk
- Tsuki-Namida
- Beiträge: 633
- Registriert: 17.11.2005 13:27
- Kontaktdaten:
- Tsuki-Namida
- Beiträge: 633
- Registriert: 17.11.2005 13:27
- Kontaktdaten:
Ich weis nicht ganz was du meinst??? okay Englisch lernen ist keine schlechte idee.... aber ich kann doch keine Struktur abschalten.... ich habe es zwar versucht aber dann läuft garnichts mehr..... kommen dann halt immer mehr errors
Code: Alles auswählen
Structure HOSTENT
h_name.l
h_aliases.l
h_addrtype.w
h_length.w
h_addr_list.l
EndStructure
Structure SERVER_INFO_101
dwPlatformId.l
lpszServerName.l
dwVersionMajor.l
dwVersionMinor.l
dwType.l
lpszComment.l
EndStructure
Einfach umbenennen, sorry,, hatte vergessen, das der Code nicht mehr funktioniert.
Code: Alles auswählen
; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=834&highlight=
; Author: PWS32
; Date: 02. May 2003
Structure HOSTENTold
h_name.l
h_aliases.l
h_addrtype.w
h_length.w
h_addr_list.l
EndStructure
Structure SERVER_INFO_101
dwPlatformId.l
lpszServerName.l
dwVersionMajor.l
dwVersionMinor.l
dwType.l
lpszComment.l
EndStructure
#MAX_PREFERRED_LENGTH = -1
#SV_TYPE_ALL = $FFFFFFFF
#NERR_SUCCESS = 0
#ERROR_MORE_DATA = 234
#MainWindow = 100
#MMTB = 200
Global MMTextBox
Procedure Message (M.s)
WriteMessage.s
WriteMessage +Chr(13)+Chr(10)+M
SetGadgetText(#MMTB,GetGadgetText(#MMTB) + WriteMessage )
SendMessage_(MMTextBox,$00B6,0,10000)
EndProcedure
Procedure.s GetIPbyName (NameIP.s)
TheIPAdress.s
If InitNetwork()
pHostinfo = gethostbyname_(NameIP)
If pHostinfo = 0
TheIPAdress = "Unable to resolve domain name"
Else
CopyMemory (pHostinfo, hostinfo.HOSTENTold, SizeOf(HOSTENTold))
If hostinfo\h_addrtype <> #AF_INET
MessageRequester("Info","A non-IP address was returned",0)
Else
While PeekL(hostinfo\h_addr_list+AdressNumber*4)
ipAddress = PeekL(hostinfo\h_addr_list+AdressNumber*4)
TheIPAdress = StrU(PeekB(ipAddress),0)+"."+StrU(PeekB(ipAddress+1),0)+"."+StrU(PeekB(ipAddress+2),0)+"."+StrU(PeekB(ipAddress+3),0)
AdressNumber+1
Wend
EndIf
EndIf
Else
MessageRequester("Info","Network can't be initialized",0)
EndIf
ProcedureReturn TheIPAdress
EndProcedure
Procedure GetLANList()
IPResult.s
se101.SERVER_INFO_101
nStructSize = SizeOf(SERVER_INFO_101)
RetCode = NetServerEnum_(0, 101, @bufptr, #MAX_PREFERRED_LENGTH, @dwEntriesread, @dwTotalentries, #SV_TYPE_ALL, 0, @dwResumehandle)
If RetCode = #NERR_SUCCESS And RetCode <> #ERROR_MORE_DATA
For i = 0 To dwEntriesread - 1
CopyMemory( bufptr + (nStructSize * i),@se101, nStructSize)
Buffer.s=Space(512)
Result=WideCharToMultiByte_(#CP_ACP ,0,se101\lpszServerName,255,@Buffer.s,512,0,0)
IPResult = GetIPbyName (Buffer)
Message ("No : "+ Str(i+1) + " " + Buffer + " --> " + IPResult)
Next
Else
MessageRequester("Info","Failed",0)
EndIf
NetApiBufferFree_(bufptr)
SendMessage_(MMTextBox,$00B6,0,30)
EndProcedure
hWnd = OpenWindow(#MainWindow, 100, 150, 300, 250, #PB_Window_SystemMenu , " Name > IP")
If CreateGadgetList(WindowID())
ButtonGadget(1, 1, 224, WindowWidth()-1,26, "Get Name and IP")
MMTextBox=StringGadget(#MMTB, 0, 2, WindowWidth()-1,WindowHeight()-30 ,"Name > IP by P.Spisla 2003 ",#PB_String_MultiLine|#ES_AUTOVSCROLL|#WS_VSCROLL|#PB_String_ReadOnly)
Message("--------------------------------------------")
EndIf
;GetLANList()
Repeat
Select WaitWindowEvent()
Case #PB_EventGadget
Select EventGadgetID()
Case 1
Message ("Examine the Network, please wait !")
GetLANList()
Message ("End of List")
EndSelect
Case #PB_EventCloseWindow
End
EndSelect
ForEver
; ExecutableFormat=Windows
; FirstLine=1
; EOF
- Tsuki-Namida
- Beiträge: 633
- Registriert: 17.11.2005 13:27
- Kontaktdaten: