Laden...

Mit dem Internet verbunden?

Erstellt von Peter Bucher vor 18 Jahren Letzter Beitrag vor 18 Jahren 3.378 Views
Peter Bucher Themenstarter:in
5.941 Beiträge seit 2005
vor 18 Jahren
Mit dem Internet verbunden?

Guten Tag

Ich möchte ein kleines Tool entwickeln, das mir sagt ob eine Internetverbindung besteht oder nicht.

Ich könnte dies z. B. durch einen Ping herausfinden, gibt es da bessere Möglichkeiten?

Und wie kann ich das Ergebniss von einem Ping auswerten?

Ist es einfach möglich, im Systemtray ein Symbol zu haben das bei Verbindung grün ist und bei Verbindungsunterbruch zu rot wechselt?

Gruss Peter Bucher

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

M
115 Beiträge seit 2003
vor 18 Jahren

Schau mal:

http://www.developer.com/net/vb/article.php/3113971

Ist schnell umgeschrieben in C#

Gernot Melichar

H
63 Beiträge seit 2005
vor 18 Jahren

Hallo Peter,

in der WinAPI und zwar genau in der RAS gibt es eine Funktion, die Dir eine Stringliste mit allen aktuellen RAS - Verbindungen (also Einwahlverbindungen - so auch DSL, Modem & Co) auflistet.

Wenn Du die Funktion genauer brauchst, frage morgen noch mal direkt nach 😉

PS: Ich habe mir so ein ähnliches Tool gemacht, um meinen Traffic zu messen ....

PS: Herons coden in C#

Warum so einfach, wenn's auch kompliziert geht !

S
8.746 Beiträge seit 2005
vor 18 Jahren

Nützt nur alles nicht, wenn du einen DSL-Router hast, da ist die Verbindung IMMER offen, zumindest scheinbar. Kann du nur über den Router selbst rausfinden, ob er verbunden ist.

H
63 Beiträge seit 2005
vor 18 Jahren

Genau - für den User nur scheinbar: aber es ist und bleibt per se eine Einwahlverbindung: und daher steht sie auch unter RemoteAccessService (RAS).

PS: Selbst wenn es keine wäre, würde sie unter dessen Kontrolle fallen.....

Warum so einfach, wenn's auch kompliziert geht !

S
8.746 Beiträge seit 2005
vor 18 Jahren

Also, ich habe letztens nen ISDN-Router als LAN konfiguriert. Da siehst du nix von Verbindung, wenn du nicht das Router-Web-Interface anschaust. Eine Wählverbindung ist ja lokal. Anders mag das bei Softwareroutern aussehen...

H
63 Beiträge seit 2005
vor 18 Jahren

OK, ich mache das so ca. einmal die Woche, und selbst habe ich auch einen Router, der entsprechend konfiguriert ist....
Es ist aber mit GetConnections() (oder zumindest ähnlich) so, das man alle die Verbindungen bekommt, die als WAN umhergeistern.

Anders sieht die Sache natürlich aus, wenn der Router nicht nur Router ist, sondern eine Logik besitzt, sich selbstständig ins Internet zu wählen. Dann würde er das Internet nicht mehr als WAN sondern als LAN weitergeben. - Und in diesem (und nur in diesem) Fall muss ich Dir Recht geben - dann läuft allerdings das komplette Verbindungmanagement auf dem Router (der dann Server ist)!!
Das wäre dann auch so, als wenn man einen eigenen Rechner dafür spendiert hat - d.h. zwecks Kontrolle: Pech gehabt !!

Um das RAS mal zu konkretisieren: **Es kann nur auf dem System abgefragt werden, dass auch tatsächlich die Internetverbindung (bzw. eine beliebige RAS Verbindung) aufbaut. **

...ist ja schlimm, brauch ich hier nun bald einen Anwalt, der mich formuliert ??

Warum so einfach, wenn's auch kompliziert geht !

C
1.215 Beiträge seit 2004
vor 18 Jahren

jo, und wie isses in meinem fall?

ich bin in unserem kleinen WG-netzwerk über nen Http- bzw. SocksProxy (Jana2-server) im netz.
das wäre eine weitere situation, da die Lan-verbindung natürlich immer steht und der Server-Pc natürlich auch immer zu erreichen ist.
da müsste man einen laufenden ProxyRequest absetzen.

kommt wohl drauf an, ob der gute Peter was universelles will oder nur seine eigene direktverbindung per DFÜ abchecken will, denke ich...

// EDIT:

Um das RAS mal zu konkretisieren: Es kann nur auf dem System abgefragt werden, dass auch tatsächlich die Internetverbindung (bzw. eine beliebige RAS Verbindung) aufbaut [...] ist ja schlimm, brauch ich hier nun bald einen Anwalt, der mich formuliert ??

auf jeden fall - zieh dich warm an!
*ggg*

grüsse

S
8.746 Beiträge seit 2005
vor 18 Jahren

Nö, jetzt sind wir uns einig, meinte ich ja.

S
8.746 Beiträge seit 2005
vor 18 Jahren

Und so entsteht aus einer einfachen Frage große Ratlosigkeit. 🙂

H
63 Beiträge seit 2005
vor 18 Jahren

Ach schau mal....

Aber auch hinter einem Proxy steckst Du im LAN - der Jana-Server macht die eigentliche Einwahl !! Und nur der kann mit tötlicher Sicherheit sagen: ICH BIN DRIN !!
Btw. das LAN kannst Du auch abfragen: die Verbindungen - genauso wie die RAS Verbindungen, halt nur in einem anderen Kontext / DLL.
Im Grunde hast Du aber nicht viel.
Wenn Du Deine LAN Verbindung hast, kannst Du versuchen, Dich über die Router zu hangeln - oder Du suchst Dir einen DNS und schickst einfach eine Anfrage:

Gibt mir die IP zu (Bsp) google.de

=> bekommst Du eine Antwort: OK Internet verbunden;

PS: Der Proxy bietet auch wieder recht nette Funktionen an.....

Warum so einfach, wenn's auch kompliziert geht !

C
1.215 Beiträge seit 2004
vor 18 Jahren

Original von Heron
Wenn Du Deine LAN Verbindung hast, kannst Du versuchen, Dich über die Router zu hangeln - oder Du suchst Dir einen DNS und schickst einfach eine Anfrage:

Gibt mir die IP zu (Bsp) google.de

=> bekommst Du eine Antwort: OK Internet verbunden;

naja, meinte ich ja - man muss laufend einen ProxyRequest absetzen.
was ja kein grosses problem wäre per HttpWebRequest.
allerdings bringt es den nachteil mit sich, dass der proxy immer eine komplette anfrage durchreicht (traffic+zeit), bis man genaueres weiss.

Original von Heron
PS: Der Proxy bietet auch wieder recht nette Funktionen an.....

nicht wirklich - mal eben anklopfen und fragen, ob er connected ist, gibts nämlich nicht (zumindest nicht nach RFC).
der proxy ist ja nicht der meister der verbindung sondern auch nur ein nutzer, ein kleines timeout muss man also immer in kauf nehmen.

// EDIT:
...im durchschnitt am schnellsten wäre sicher eine anfrage über SOCKS4 (da keine auth) und dann ein einfaches CONNECT XYZ zu irgendnem server-port, der nah bei is und nur ein "hi!" zurückschickt.
ist der internet-server nicht verfügbar oder leitung weg, gibt es natürlich etliche sekunden bis timeout.

grüsse

H
63 Beiträge seit 2005
vor 18 Jahren

ist völlig richtig;

aber mal PS: Socks4 ist auch eins von vielen Proxy Protokollen.....

Warum so einfach, wenn's auch kompliziert geht !

C
1.215 Beiträge seit 2004
vor 18 Jahren

Original von Heron
aber mal PS: Socks4 ist auch eins von vielen Proxy Protokollen.....

standardisiert sind genau 4:

  • Http
  • Socks4
  • Socks4a
  • Socks5

ersterer kennt nur CONNECT.
die anderen drei dazu noch BIND für zugriffe von der gegenseite (z.b. IRC u.ä.).
und alle ausser Socks4 kennen natürlich noch AUTH.

habe vor nem knappen halben jahr eine klasse für SOCKS proxies geschrieben und musste mich mit den ganzen spezifikationen rumschlagen, daher kann ichs mit sicherheit sagen.

...ach ja, es gibt noch FTP-gateways, aber das sind etwas andere geschichten.

grüsse

H
63 Beiträge seit 2005
vor 18 Jahren

Yepp, genau die....

PS: Und...schon ausgeschlafen??

Warum so einfach, wenn's auch kompliziert geht !

Peter Bucher Themenstarter:in
5.941 Beiträge seit 2005
vor 18 Jahren

Original von Heron
PS: Herons coden in C#

Weiss ich doch 🙂

Original von Cord Worthmann
kommt wohl drauf an, ob der gute Peter was universelles will oder nur seine eigene direktverbindung per DFÜ abchecken will, denke ich...

Hi Chief

Ich fände sowas nützlich, da im Moment bei uns im Geschäft die ADSL Verbindung immer wieder ausfällt, dann muss ich nicht immer cmd (ping) offen haben 😜
sondern hätte immer entweder ein rot oder grün im Tray.

Ich fahre über eine LAN oder WLAN Verbindung, im Netz steht ein ADSL Router...
Am besten und zuverlässigsten wäre schon ein Web Request oder?

Jetzt noch eine Frage, ich möchte die Verbindung z. B. alle 10 Sekunden überprüfen...

Erstens:
Wie mache ich solch eine Schleife oder am besten ein Wait (wie geht das in C#) reinknallen?

Zweitens:
Ein vollständiger Web Request würde die Leitung natürlich dementsprechend alle 10 Sekunden belasten, vielleicht kann man ja nur den Header einer HTML Seite auslesen oder gibts da noch was besseres?

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

1.549 Beiträge seit 2004
vor 18 Jahren

Wie wäre es mit einem ping an google?? Oder du rufst irgendeine „mini“ seite auf (kannst ja wenn du willst selbst eine bei einem Kostenlosen hoster online stellen

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

Peter Bucher Themenstarter:in
5.941 Beiträge seit 2005
vor 18 Jahren

Original von S.H.-Teichhof
Wie wäre es mit einem ping an google?? Oder du rufst irgendeine „mini“ seite auf (kannst ja wenn du willst selbst eine bei einem Kostenlosen hoster online stellen

Hallo

Ja das wäre eine Möglichkeit aber wie mache ich sowas.
Ein Ping über ein verstecktes Command Fester?
Und wie kann ich ein Trayicon für meine Anwendung erstellen?

Gruss Peter Bucher

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

1.549 Beiträge seit 2004
vor 18 Jahren

Ja ein Icon kannst du er stellen und was den Ping angeht mit ping geht es am einfachsten aber wenn ich mich richtig erinnere gibt es hier im Forum irgendwohin Beispiel für ein PingProgramm in C# das Kannst du natürlich auch einbauen

Edit:
Ping ? Ping !
wichtig suche nach Ping lifert genug ergebnisse

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

Peter Bucher Themenstarter:in
5.941 Beiträge seit 2005
vor 18 Jahren

Danke für die Antwort, werde jetzt wohl häuffiger die Suche benutzen 😉
Ist mir klar das ich ein Icon erstellen kann aber wie kann ich mein Programm nur im Systemtray stehen lassen, ohne richtige GUI und wie dann einfach das Trayicon ändern?

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

1.549 Beiträge seit 2004
vor 18 Jahren

Form nach minimieren in Symbolleiste Das könnte dir helfen wenn nicht such doch mal nach Trayicon (da kannst du gleich mal das Suchen üben) =)

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

Peter Bucher Themenstarter:in
5.941 Beiträge seit 2005
vor 18 Jahren

Danke, werde mich mal schlaumachen..

edit: Irgendwie ist mir das ganze zu kompliziert, hab zwar ein Beispiel gefunden aber dort sind auch die Standart Sachen wie Inialize Komponent etc.. noch drinn... auch noch so ein ApplicationContex, keine Ahnung was das ist.

Kannst du mir nicht ein kleines Beispiel machen das übersichtlich ist?

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011