IP ändern?

Anfängerfragen zum Programmieren mit PureBasic.
HB
Beiträge: 4
Registriert: 12.03.2005 21:26
Wohnort: Dortmund

IP ändern?

Beitrag von HB »

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 :D .
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

Moin

1. Warum willst du die IP verändern?
2. Ich verstehe nicht so recht, was du mit dem Benutzernamen vor hast.
Beschreib mal genauer, was dein Programm so tun soll.

Greetz Laurin
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
HB
Beiträge: 4
Registriert: 12.03.2005 21:26
Wohnort: Dortmund

Beitrag von HB »

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. :)
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

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
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

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 :coderselixir:
Bild
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

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 :wink:


Greetz Laurin
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
HB
Beiträge: 4
Registriert: 12.03.2005 21:26
Wohnort: Dortmund

Beitrag von HB »

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. :|
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

Zeig doch mal den VB Code zum Ändern der IP. Ich denke, den könnte man nach PB portieren.
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
HB
Beiträge: 4
Registriert: 12.03.2005 21:26
Wohnort: Dortmund

Beitrag von HB »

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 :allright:
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

wird etwas kritisch, da OOP, lässt sich aber realisieren. Wenn du, Laurin, es nicht schaffst mach ich das gerne :lol:.
Bild
Antworten