Entwickler-Ecke

Internet / Netzwerk - Herausfinden, ob aderer PC im Netzwerk im Internet ist


Peter2002 - Fr 28.03.03 21:54
Titel: Herausfinden, ob aderer PC im Netzwerk im Internet ist
Hallo,

wie der Titel schon sag ... Ich möchte wissen, ob ein bestimmter PC im Netz mit dem Internet verbunden ist.
Ich habe mir das so vorgestellt:
Auf PC1 läuft ein kleines Progrämmchen, welches regelmäßig prüft, ob eine Internetverbindung besteht (wie das geht weiß ich) und eine Meldung an PC2 schickt.
Ich wollte das mit Server- und ClientSocket machten, also Chat-ähnlich, wo halt nur ein String mit online bzw. offline gesendet wir, aber irgendwie kommt da immer ein leerer string an.

Geht das auch anders?


BungeeBug - Fr 28.03.03 23:03

Hi ...
ja du kannst einfach pingen ... und wie das geht erfärst nach der mau ... äh .. suche :) Sofern ich das richtig verstanden habe, willst du ja nur das "vorhandensein" des PC testen und das geht ameinfachsten mit dem Ping ... wenn der Ping ankommt gehts wohl -> der PC is da, sollte er jetzt aber nicht ankomme ... -> is wohl der PC aus. Das ganze hat den Vorteil das man nur das "Server" Prog braucht das den Ping macht ...

MfG BungeeBug


matze - Sa 29.03.03 12:23

nimm doch die INDy kompo umd den string 'online' oder 'offline' von einem PC zum anderen zu bekommen. das geht recht komfortabel damit !


Peter2002 - Sa 29.03.03 15:57

ich will wissen, ob der andere PC mit dem Internet verbunden ist (eine DFÜ-Verbindung offen ist).
Nur weil ein PC im Netzwerk auf den Ping reagiert, heißt das doch noch lange nicht, dass er im Internet ist.

@matze: welche Indy-Komps brauch ich da?


inselberg - Sa 29.03.03 22:38

ping yahoo.de
oder irgendne externe ip ... falls du kein dns hast ...


MSCH - Sa 29.03.03 22:52

Peter2002 hat folgendes geschrieben:
ich will wissen, ob der andere PC mit dem Internet verbunden ist (eine DFÜ-Verbindung offen ist).
Nur weil ein PC im Netzwerk auf den Ping reagiert, heißt das doch noch lange nicht, dass er im Internet ist.

@matze: welche Indy-Komps brauch ich da?


häää??? Im Netzwerk ja, aber nicht im DFÜ? Grübel.
wie soll das gehen? Also wenn er auf einen Ping reagiert, sollte er im Netzwerk sein, sprich die DFÜ Leitung ist offen. Oder hast du einen Lan Rechner mit DFÜ Adapter?
grez
msch


inselberg - Sa 29.03.03 23:04

er hat sicher ping 192.168.0.1 oder ping localhost probiert ...

den stecker rausgezogen und festgestellt ... "ping geht auch wenn ich nicht im inet bin" ... :roll:


matze - So 30.03.03 11:39

also um den string von einem PC zum aderen zu bekommen nimmst du die INDY TCP Client oder Server kompo. wie das geht, das ist in den DEMO Files gut gezeigt.


Peter2002 - So 30.03.03 14:02

OK, ich glaube ich habe mich nicht sehr verständlich ausgedrückt. Also Veruch #2.
Ich habe zwei PCs, die beide an einem Hub hängen. Am Uplink des Hubs hängt das DSL-Modem. Beide PCs habe eine DFÜ-Verbindung. Wenn also einer der beiden ins Internet geht, dann kann sich der andere nicht mehr einwählen, weil der eine das ja schon getan hat.
D.h. ein lokaler Ping wird immer gehen, ein externer nur dann, wenn an meinen PC die DFÜ offen ist. Die wiederum kann ich aber nicht immer aufmachen, weil ja evtl der andere drin ist.
...Ich will nur wissen, ob ich mir den Einwahlversuch sparen könnte.

Bitte erzählt mir jetzt nichts über Proxy. Ich will ins Internet können, ohne erst einen anderen Rechner einzuschalten, bzw deisen ständig laufen zu lassen.

PS: ich hoffe ich habe mich verständlicher ausdrücken können


inselberg - Mo 31.03.03 00:04

Zitat:

D.h. ein lokaler Ping wird immer gehen, ein externer nur dann, wenn an meinen PC die DFÜ offen ist. Die wiederum kann ich aber nicht immer aufmachen, weil ja evtl der andere drin ist.
...Ich will nur wissen, ob ich mir den Einwahlversuch sparen könnte.


das sag ich doch ... ping einfach yahoo an ... bist du schon im inet kriegst du en reply, bist dus nicht wählst du dich ein ...


Böser Borstel - Mo 31.03.03 14:18
Titel: vielleicht so
mit dem folgenden code kannst du prüfen ob derzeit eine verbindung offen ist über dfü, netzwerk oder proxy ins internet.


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
function TfrmCDArchiv.IstInternetVerbindung: Boolean;
var
  dwConnectionTypes: DWORD;
begin
  dwConnectionTypes :=
    INTERNET_CONNECTION_MODEM +
    INTERNET_CONNECTION_LAN +
    INTERNET_CONNECTION_PROXY;
  Result := InternetGetConnectedState(@dwConnectionTypes, 0);
end;