IP ändern?
IP ändern?
Hi, ich versuch grad ein kleines tool für die Schule zu basteln um die Clients leichter einzustellen. Gibt es eine Möglichkeit die IP zu setzen und kann man die Benutzernamen ändern? Ich hab erst seit kurzem PureBasic und ich find die Programmiersprache ganz toll .
Die Clients bekommen eine feste IP, die muss eventuell mal geändert werde bei Umstellungen im Netz genauso wie der Benutzername. Das geht zwar alles auch mit der Windowsoberfläche aber ich wollte das in einem Fenster sammeln. Dort würden dann alle relevanten Einstellungen angezeigt und könnten dort auch geändert werden. Mit PureBasic braucht man dann auch keine Installation sondern hat nur eine kleine exe und gut.
Die IP-Adressen brauchst du nicht fest machen. Lass sie sich dynamisch zuweisen, das funktioniert einwandfrei.
Um die IP-Adressen im Netz zu bekommen, benutzt ExamineIPAddresses().
Dann fragst du bei jeder IP an, ob dein Client dahinter hängt (zB einen speziellen Port benutzen, wenn ein Client antwortet und sich identifiziert, ist alles in Butter). So brauchst du das Programm nicht jedes Mal verändern, wenn du das Netz veränderst.
Während des laufenden Betriebs kann man meines Wissens nach, einen Benutzer abmelden, jedoch nicht anmelden (da dein Programm mit der Abmeldung ja beendet wird).
Greetz Laurin
Um die IP-Adressen im Netz zu bekommen, benutzt ExamineIPAddresses().
Dann fragst du bei jeder IP an, ob dein Client dahinter hängt (zB einen speziellen Port benutzen, wenn ein Client antwortet und sich identifiziert, ist alles in Butter). So brauchst du das Programm nicht jedes Mal verändern, wenn du das Netz veränderst.
Während des laufenden Betriebs kann man meines Wissens nach, einen Benutzer abmelden, jedoch nicht anmelden (da dein Programm mit der Abmeldung ja beendet wird).
Greetz Laurin
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
And we're out of beta. We're releasing on time.
eigentlich steht da (sry) kompleter Bullshit. Die Methode mit ExamineIPAddresses() schlägt schon dann fehl, wenn der Server an nem Router hängt. Da gibt es halt nur eine IP. außerdem bekommt man mit dieser Funtkion nur die komplett eigene IP eines Adapters raus.
Im laufendem Betrieb kann man einen Benutzer unter WinNT an- und abmelden. Mensch muss aber dann das Programm unter einem anderem Benutzernamen ausführen "SYSTEM" oder so, frag mich jetzt nicht genauer, bin nicht der NT Fachman.
Um alle IP Adressen innerhalb eines Netzwekres zu ermitteln geht. Code dafür hab ich irgendwo gesehen. Müsst ich nur mal kurz rum suchen. Bin jetzt aber zu Müde dafür
Im laufendem Betrieb kann man einen Benutzer unter WinNT an- und abmelden. Mensch muss aber dann das Programm unter einem anderem Benutzernamen ausführen "SYSTEM" oder so, frag mich jetzt nicht genauer, bin nicht der NT Fachman.
Um alle IP Adressen innerhalb eines Netzwekres zu ermitteln geht. Code dafür hab ich irgendwo gesehen. Müsst ich nur mal kurz rum suchen. Bin jetzt aber zu Müde dafür
Wenn ich HB richtig verstanden habe, braucht er das Programm für ein Intranetz. Von daher reicht ExamineIPAddresses(), da ist der Router dann mehr oder weniger egal.
Mit Sache das Programm als Benutzer SYSTEM laufen zu lassen, halte ich mich mal raus. Jetzt wo du es geschrieben hast, ist es mir auch eingefallen, aber ich hab keine Ahnung, wie das gehen soll, vielleicht als Systemservice?
Und noch was - bitte nicht so vulgär MVXA
Greetz Laurin
Mit Sache das Programm als Benutzer SYSTEM laufen zu lassen, halte ich mich mal raus. Jetzt wo du es geschrieben hast, ist es mir auch eingefallen, aber ich hab keine Ahnung, wie das gehen soll, vielleicht als Systemservice?
Und noch was - bitte nicht so vulgär MVXA
Greetz Laurin
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
And we're out of beta. We're releasing on time.
Richtig Laurin, es handelt sich um ein Schulnetzwerk. In Visual Basic kann man die IP per WMI ändern. Das Auslesen der IP hab ich schon geregelt , sowohl local als auch von anderen Clients, die MAC kann ich auch auswerten und den Benutzernamen sowie den Computernamen. Man kan das ganze als Spielerei abtun, aber ich dachte es wäre ganz interessant sowas in PureBasic zu machen.
Okay Laurin, Code folgt
'***
'** IP-Adresse änern
'***
Private Sub ChangeIP(ByVal strNewIP As String, _
Optional ByVal strSubNetMask As String = "255.255.255.0")
Dim lngStatus As Long
Dim strSQL As String
Dim objResult As Object
Dim objCard As Object
Dim objWMI As Object
Set objWMI = GetObject("winmgmts:")
strSQL = "SELECT * FROM win32_NetworkAdapterConfiguration WHERE IPEnabled = true"
Set objResult = objWMI.execquery(strSQL)
For Each objCard In objResult
If IsArray(objCard.IpAddress) Then
lngStatus = objCard.EnableStatic(Array(strNewIP), Array(strSubNetMask))
End If
Next
End Sub
Ich hoffe du kannst damit etwas anfangen
'***
'** IP-Adresse änern
'***
Private Sub ChangeIP(ByVal strNewIP As String, _
Optional ByVal strSubNetMask As String = "255.255.255.0")
Dim lngStatus As Long
Dim strSQL As String
Dim objResult As Object
Dim objCard As Object
Dim objWMI As Object
Set objWMI = GetObject("winmgmts:")
strSQL = "SELECT * FROM win32_NetworkAdapterConfiguration WHERE IPEnabled = true"
Set objResult = objWMI.execquery(strSQL)
For Each objCard In objResult
If IsArray(objCard.IpAddress) Then
lngStatus = objCard.EnableStatic(Array(strNewIP), Array(strSubNetMask))
End If
Next
End Sub
Ich hoffe du kannst damit etwas anfangen