gudn tach!
da ein zusammenhang zum OP besteht, poste ich mein anliegen hier.
im thema steht schon fast das problem. es sind drei computer A, B, C mit windows nt5+ (teils 2000 teils xp) gegeben, die alle an einem switch haengen, welcher wiederum mit einem dsl-modem verbunden ist.
es sind nicht immer alle drei computer eingeschaltet und es gibt hier auch noch keine flat-rate.
wenn nun computer A sich ins internet einwaehlt, koennen B und C damit noch nicht automatisch ins internet.
wenn aber computer A unter windows ics (internet-connection-sharing) aktiviert, dann koennen auch die anderen beiden computer ins internet, unter der voraussetzung, dass sie A als gateway einstellen.
soweit so gut. das problem ist, dass, wie gesagt, computer A nicht immer an ist, aber trotzdem mal z.b. computer B sich ins internet einloggen will. dafuer muesste B dann aber A als gateway wieder herausnehmen. ausserdem muessten A und C, wenn sie eingeschaltet werden und B noch immer eingeloggt ist, B als gateway angeben.
darueberhinaus muss B ics aktivieren (aber das sollte man ja nur ein mal machen muessen und dann aktiviert lassen koennen.)
es geht also alles, aber ist mit viel hin- und herstellerei verbunden. (oder sehe ich das falsch?)
als ausweg habe ich mir nun ueberlegt, ein kleines tool zu schreiben, welches auf jedem der drei computer verwendet wird, um sich ins internet einzuloggen.
dieses tool soll folgendermassen vorgehen:
1. pruefe ob internetverbindung besteht
(falls ja: ende)
2. falls nicht: loesche etwaigen gateway und versuche internet-verbindung herzustellen
3. falls besetzt: setze gateway auf ip von A
(sonst: ende)
4. falls eigene ip!=ip von A: pruefe ob internetverbindung besteht
5. falls internetverbindung noch nicht besteht: setze gateway auf B, wdh. entsprechend 4.
6. dito mit C
7. falls immer noch keine verbindung besteht: beep 3 mal und gib aus: "steck sofort das netzkabel wieder rein! was? ist doch drin? dann hat seth mist gebaut! das klappt doch alles nedd!"
umsetzen will ich das moeglichst mit boardmitteln, also z.b. batch, oder wenns sein muss vbs und evtl. kleinen C/C++-dateien. leider haben nicht alle drei computer perl installiert, sonst wuerde ich's wohl damit machen (und die pl2exe-module sind imho noch nicht ausgereift).
programmiertechnisch umsetzen moechte ich das ganze folgendermassen, aber vielleicht ja da noch jemand verbesserungsvorschlaege.
1. laesst sich z.b. durch anpingen dreier verschiedener domains, von denen mind. eine erreichbar sein sollte (errorlevel>0), ganz gut realisieren.
2. gateways kann man ueber die registry setzen, allerdings werde ich dann wohl manuell vorher in allen drei registrys (oder per windump -D) nach den {5252ECB1-B7A0-...}-bezeichnungen der adapter schauen muessen und jene manuell eintragen. das eigentliche setzen laesst sich dann aber wieder automatisieren, z.b. mit dem in den support tools vorhandenen reg.exe.
die internet-verbindung herstellen kann man mit rasphone.exe.
3. die abfrage "falls besetzt ..." wird wohl nicht so einfach. da faellt mir spontan nur ein, per c++ auf ein solches fenster zu warten, es dann automatisch zu schliessen und die information darueber z.b. in form eines entsprechenden errorlevels zurueckzugeben.
4. ips vergleichen geht ueber
ipconfig /all | findstr IP-Adresse | findstr %ip
if errorlevel 9009... gleich
if errorlevel 0... ungleich
prost
seth