|
|
#1 |
|
Oldie
Registriert seit: 09.06.2001
Beiträge: 3.843
|
Hallo zusammen,
ich müsste programmatisch irgendwie feststellen können, ob ein DHCP-Server umher steht. Dessen IP benötige ich dann. Sollten es mehrere Server sein, so nehme ich gerne alle IPs. Warum? Ich möchte mir dann die MAC-Adresse der IP holen und anhand einer Liste vergleichen, ob ich in einem 'bekannten' Netz bin. Daraufhin stelle ich dann automatisch meine Konfiguration um. Das klappt jetzt schon gut, nur ist es doof, wenn ich z.B. von einem Kunden komme, wo ich eine statische IP zu verwenden hatte. Wenn ich dann vor der Abreise vergesse wieder auf Dynamisch umzustellen, finde ich hier gar keinen DHCP-Server um festzustelle, wo ich jetzt bin. Ich müsste also einen DHCP-Request per Broadcast raussenden und schauen, wer antwortet. Umgebung: Windows 7 (x64, aber das sollte keine Rolle spielen). Bisherige Lösung ist mit VB6 erstellt. Irgendwie müsste ich das da einbinden können. Wäre toll, wenn mir jemand helfen könnte. Gruß, Atze |
|
|
|
|
|
#2 |
|
Universaldilletant
Registriert seit: 10.05.2001
Beiträge: 3.495
|
Don't call us, we call you. Der DHCP-Server gibt sich eigentlich selbst zu erkennen und schickt in der Regel auch gleich die Konfiguration (DNS, Routing etc.) mit.
Alternativ schmeisst du beispielsweise Wireshark an und schaust nach den DHCP-Broadcasts, die eigentlich permanent durchs Netz fliegen. |
|
|
|
|
|
#3 |
|
Oldie
Registriert seit: 09.06.2001
Beiträge: 3.843
|
Wenn ich ne feste IP habe, die gar nicht zum 'Netz' passt, dann kriege ich doch nie was mit. Oder sehe ich das falsch?
Soweit ich gelesen habe, wird dort vom DHCP-Client mit einem Broadcast gearbeitet. Und Wireshark is nich, da ich das ja programmatisch erfassen will... |
|
|
|
|
|
#4 |
|
Patriarch
Registriert seit: 02.05.2001
Beiträge: 6.153
|
Du kannst einen guten DHCP-Clienten (zum Beispiel diesen hier) umfassend über seine Konfigurationsdatei konfigurieren und auf unterschiedliche DHCP-Server unterschiedlich reagieren lassen.
|
|
|
|
|
|
#5 |
|
Oldie
Registriert seit: 09.06.2001
Beiträge: 3.843
|
Hm, sieht nicht aus, als wäre er für Windows und wenn, dann wohl nicht programmatisch nutzbar.
Verfehlt glaube ich etwas mein Ziel. Aber danke! |
|
|
|
|
|
#6 | |
|
alter Oldie
Registriert seit: 26.04.2001
Ort: Berlin
Beiträge: 3.250
|
Wie wäre es z. B. so:
Zitat:
Weitere Infos und Links http://www.vbmonster.com/Uwe/Forum.a...Ptions-from-VB |
|
|
|
|
|
|
#7 |
|
Oldie
Registriert seit: 09.06.2001
Beiträge: 3.843
|
Hm, soweit ich sehe, brauche ich für diese Ansätze auch eine bestehende Verbindung zum DHCP-Server.
Ich beschreibe lieber nochmals das Szenario: - Mein Notebook ist per LAN an einem Netz angeschlossen. - Die gegenwärtige IP-Konfiguration dieses Netzwerkadapters ist jedoch fix, also KEIN DHCP, und stammt noch vom letzten Kundenbesuch. - Ich habe also keine IP-Verbindung. - Nun möchte ich per API oder ähnlich, ohne die Einstellung meiner Netzwerkkarte zu ändern, gerne die IP-Adresse eines (z.B. meines) DHCP-Servers herausfinden. Das geht soweit ich weiß nur per Broadcast. Das muss theoretisch ziemlich low-level sein, da mein NIC (Netzwerkkarte) ja noch keine logische Verbindung zum Netz hat. |
|
|
|
|
|
#8 |
|
Patriarch
Registriert seit: 02.05.2001
Beiträge: 6.153
|
Dazu sendest Du ein DHCPDISCOVER per UDP an 255.255.255.255:67 und erhältst ein DHCPOFFER an 255.255.255.255:68 zurück. Näheres siehe RFC 2131 und im Stevens.
|
|
|
|
|
|
#9 | |
|
Oldie
Registriert seit: 10.06.2001
Beiträge: 4.464
|
Such einfach nach dhcp.c Code per Google. Erste Treffer zeigt dir auch gleich wies geht:
Zitat:
|
|
|
|
|
|
|
#10 |
|
Oldie
Registriert seit: 09.06.2001
Beiträge: 3.843
|
Yo, das sieht doch schon mal gut aus!
Jetzt muss ich nur in ner ruhigen Stunde mal schauen, wie ich das in VB6 verwurste. Vielleicht in eine DLL compilieren, exportieren und diese dann aus VB6 heraus nutzen? Theoretisch sollte das ja gehen. Praktisch muss ich mal sehen. Hab' ich noch nie gemacht. Bin ja C#'ler. Danke aber schon mal! |
|
|
|
|
|
#11 |
|
Patriarch
Registriert seit: 02.05.2001
Beiträge: 6.153
|
Und warum muß es mit dem völlig veralteten VB6 gemacht werden?
|
|
|
|
|
|
#12 |
|
Oldie
Registriert seit: 09.06.2001
Beiträge: 3.843
|
- Zum einen ist das Progrämmchen wo ich es einbauen möchte schon fertig und basiert auf VB6.
- Zum andern ist die Laufzeitumgebung schlanker als z.B. bei .NET. Und da es beim Hochfahren quasi als Dienst genutzt wird, möchte ich diesmal eine schlanke Umgebung. Sonst favorisiere ich klar .NET. - Delphi kenn ich nicht. - C ist bei mir fast 20 Jahre her und der Erfahrungsschatz war auch auf Grund zeitlicher Engpässe damals sehr gering. - C++ kenne nur aus der Theorie. Im Grunde spricht da nicht viel gegen VB6. Wenn ich das oben aufgeführte Sample in eine DLL compiliert kriege kann ich es von dort aus ja nutzen. Eine reine C/C++ Lösung wäre aus der jetzigen Situation heraus für mich nicht einfacher umzusetzen. |
|
|
|
|
|
#13 |
|
Oldie
Registriert seit: 10.06.2001
Beiträge: 4.464
|
Das Sample ist nur ein Auszug aus nen längeren Code. Sagte eher, sollte google suchen lassen (;
Im Grunde wurde das Gewünschte hier gemacht: Die Kunst ist nicht alles zu wissen, sondern zu wissen, wie man alles findet (; |
|
|
|
|
|
#14 |
|
Oldie
Registriert seit: 09.06.2001
Beiträge: 3.843
|
adhome, ich glaube das Sample aus deinem letzen Link geht in eine andere Richtung, oder?
|
|
|
|
|
|
#15 |
|
Oldie
Registriert seit: 10.06.2001
Beiträge: 4.464
|
DhcpRequestParams sollte ein Array mit allen DHCP Servern geben.
Ist aber wirklich vielleicht hier überdimensieniert. Zumal Adaptername usw. mit angegeben werden. Reicht es nicht die Registry zu fragen? HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\DHCPNameServer Ausgangspunkt der Suche sollte HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\DHCP\Parameters\Options sein. |
|
|
|
|
|
#16 |
|
Master of Tools
Registriert seit: 21.05.2001
Beiträge: 3.902
|
Wie wäre es damit, ein Tool wie Netsendman zu benutzen.
Damit kannst du verschiedene LAN-Konfigurationen als Profile abspeichern und schnell hin- und her wechseln. Da würde dir auch gleich deine Suche nach einem DHCP-Server erübrigen. |
|
|
|
|
|
#17 | |
|
Oldie
Registriert seit: 09.06.2001
Beiträge: 3.843
|
@adhome:
Zitat:
Ich muss mich da mehr reinwühlen. Bin nur momentan am kränkeln und habs nicht so mit Konzentration irgendwie. Bzgl. deiner Idee mit dem Auslesen der Registry: Da muss der Rechner/Adapter doch auch schon wieder bereits logisch mit dem LAN verbunden sein (was ja in meinem Szenario definitiv nicht der Fall ist, weil eine statische IP-Konfiguration vorliegt, die gar nicht zum vorliegenden Netz passt), oder habe ich ein Brett vor dem Kopf? @Skavenger: Ich nutze bereits ein solches Tool von Lenovo/IBM, da mein Notebook von da her stammt. Bin sehr zufrieden damit. Es kann auch automatisch Profile wechseln, hat aber Schwachpunkte, die ich mit meinem Tool ausgleiche. Zudem ist mein Notebook, wenn ich es Zuhause hochfahre, zugeklappt und bleibt auch so (ich verwende dort Input Director). Da ist das mit dem händischen Wechseln Essig. Also danke dir für den Vorschlag, aber ich weiß schon wo ich hin will. Ich muss halt nur noch den/die DHCP-Server finden um zu ermitteln wo ich bin. Wie es aussschaut bin ich ja nah dran. |
|
|
|
|
|
| Themen-Optionen | Thema durchsuchen |
| Ansicht | |
|
|