Broadcast ?

Hallo Leute.

Ich hab mal wieder ein kleines Problem.
Wie kann ich denn herausfinden welche Rechner in einem Netzwerk laufen und deren Namen, bzw. IP-Adressen herausfinden. Kann ich das mit dem Winsock machen? Der bracuht ja aber irgendwie immer Remote-Host und Port !?!?!

Ich möchte sozusagen einen Server aufbauen, der alle Rechner im lokalen Netzwerk erfasst. Wäre echt super wenn mir jemand helfen könnte.

Vielen Dank im Vorraus

Matze

Hallo,

ich hab das hier mal ausgegraben:

Du setzt das Winsock-Control auf Deine Form und benutzt
es um Deine Locale-IP-Adresse herauszufinden...

Msgbox Winsock1.LocalIP

oder Du benutzt API...


Public Const WS\_VERSION\_REQD = &H101
Public Const WS\_VERSION\_MAJOR = WS\_VERSION\_REQD \ &H100 And &HFF&
Public Const WS\_VERSION\_MINOR = WS\_VERSION\_REQD And &HFF&
Public Const MIN\_SOCKETS\_REQD = 1
Public Const SOCKET\_ERROR = -1
Public Const WSADescription\_Len = 256
Public Const WSASYS\_Status\_Len = 128

Public Type HOSTENT
 hName As Long
 hAliases As Long
 hAddrType As Integer
 hLength As Integer
 hAddrList As Long
End Type

Public Type WSADATA
 wversion As Integer
 wHighVersion As Integer
 szDescription(0 To WSADescription\_Len) As Byte
 szSystemStatus(0 To WSASYS\_Status\_Len) As Byte
 iMaxSockets As Integer
 iMaxUdpDg As Integer
 lpszVendorInfo As Long
End Type

Public Declare Function WSAGetLastError Lib "WSOCK32.DLL" () As Long
Public Declare Function WSAStartup Lib "WSOCK32.DLL" (ByVal wVersionRequired&, lpWSAData As WSADATA) As Long
Public Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long
Public Declare Function gethostname Lib "WSOCK32.DLL" (ByVal hostname$, ByVal HostLen As Long) As Long
Public Declare Function gethostbyname Lib "WSOCK32.DLL" (ByVal hostname$) As Long
Public Declare Sub RtlMoveMemory Lib "kernel32" (hpvDest As Any, ByVal hpvSource&, ByVal cbCopy&amp:wink:

Function hibyte(ByVal wParam As Integer)
 hibyte = wParam \ &H100 And &HFF&
End Function


Function lobyte(ByVal wParam As Integer)
 lobyte = wParam And &HFF&
End Function


Sub SocketsInitialize()
 Dim WSAD As WSADATA
 Dim iReturn As Integer
 Dim sLowByte As String, sHighByte As String, sMsg As String
 iReturn = WSAStartup(WS\_VERSION\_REQD, WSAD)


 If iReturn 0 Then
 MsgBox "Winsock.dll Error."
 End
 End If
 If lobyte(WSAD.wversion) 0)


If ReturnExternalIP = True Then
 CurrentIP = EXTERNAL
Else
 CurrentIP = Internal
End If
End Function

Sub SocketsCleanup()
 Dim lReturn As Long
 lReturn = WSACleanup()


 If lReturn 0 Then
 MsgBox "Socket Error " & Trim$(Str$(lReturn)) & " occurred In Cleanup "
 End
 End If
End Sub


Usage

Private Sub Command1\_Click()
 SocketsInitialize
 Msgbox CurrentIP(True)
End Sub

Ich hoffe es hilft Dir weiter,

Gtüße, MAJA.