Entwickler-Ecke

Internet / Netzwerk - Online/Offline?


Borlox - Do 31.10.02 18:53
Titel: Online/Offline?
Hi Leute,

hat irgendjemand eine Idee, wie man abfragen kann, ob man online ist? OHNE das bei der Prüfung er versucht anzuwählen??
Habe das ganze Forum durchsucht, aber nur Möglichkeiten gefunden, bei denen er immer versucht anzuwählen! Wie z.B. das Pingen!!!

Borlox


O'rallY - Do 31.10.02 19:52

Das [http://www.swissdelphicenter.ch/de/showcode.php?id=70] müsste dir eigentlich weiterhelfen. "Wie kann ich überprüfen ob eine Verbindung zum Internet besteht?"


Michi_Mueller - Sa 02.11.02 11:16

He Jungs, nen bissel kompliziert oder?

Versuchs doch einfach mit der Indy Komponente IPWatch.

So fragste das ab:


Quelltext
1:
if IdIPWatch.IsOnline then ...........                    


Borlox - Sa 02.11.02 12:45
Titel: IdIPWatch
Hi,

ich habe es versucht mit der Indy Komponente, genau nach deinem Code, aber er kennt das IsOnline nicht!
Zitat:
[Error] Unit1.pas(32): Undeclared identifier: 'IsOnline'

??????????????
Borlox


littlemike1005 - Sa 02.11.02 13:42
Titel: Doch
Bei mir kennt er den Befehl IdIpWatch1.isOnline aber wenn ich das in eine label schreibe.

Quelltext
1:
2:
3:
4:
5:
6:
if idipwatch1.isonline then 
 begin
  label1.caption:='online'; 
 end else begin
               label1.cation1:='offline';
              end;

dan compil. er das auch aber es ist egal ob ich online oder offline bin er zeigt immer online.

(02.11.02 16:41 Tino) Code-Tags hinzugefügt.


BungeeBug - Sa 02.11.02 14:04

dann gehtst du warscheinlich über DSL online und er fragt die Netzwerkkarte ab ... und die is nun mal (solange nen Kabel drinn is) online ...

MfG BungeeBug


littlemike1005 - Sa 02.11.02 15:55
Titel: @BungeeBug
MMMMMMMHHHHH JAP daran habe ich noch nicht gedacht.


Michi_Mueller - Sa 02.11.02 16:45

@Borlox:
In meine Code war auch nen Fehler! Es muss natürlich so aussehen:

if idipwatch1.isonline then :oops:

Aber ich hab da nen ganz anderes Problem. Hab auch DSL aber bei mir is er die ganze Zeit offline und das versteh ich nun ehrlich nich!


littlemike1005 - Sa 02.11.02 16:57
Titel: NEIN
Ok Ich glaube wir lassen es jetzt besser. Bei dem einen so und bei dem anderen so. ne das versteh ich jetzt auch nicht so ganz.


Delete - Sa 02.11.02 17:30

InternetGetConnectedState aus WinSock.


littlemike1005 - Sa 02.11.02 18:24
Titel: NO
Nö auch das geht nicht mit DSL

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
uses WinInet;

procedure TForm1.Button1Click(Sender: TObject);
begin
  If  InternetGetConnectedState(nil, 0) then
    Caption := 'Online'
  else
    Caption:='Offline';
end;
Anzeige erfolg als formname oben links

(Quelle: Easy Delphi Helper)

(03.11.02 12:14 Tino) Code-Tags hinzugefügt.


Delete - Sa 02.11.02 19:50

Also das geht bei mir mit DSL:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.Button1Click(Sender: TObject); 
var 
  dwResult : cardinal; 
begin 
  dwResult := 0; 
  if Internetgetconnectedstate(@dwResult,0) then 
    showmessage('ONLINE') 
  else 
    ShowMessage('OFFLINE'); 
end;


Nur wenn man hinnter einen Router sitzt bekommt man Probleme.


Borlox - Sa 02.11.02 22:24
Titel: ???
Was für eine Komponente brauche ich für den oben genannten Code???
Und woher kann ich diese bekommen???

Danke


Delete - So 03.11.02 02:56

Für meinen? WinInet mit einbinden.


littlemike1005 - Mo 04.11.02 17:28
Titel: Nööö
Bei mir ist auch mit diesem code dauer online angesagt :oops:


Delete - Mo 04.11.02 19:28

Hoffentlich hast du 'ne Flat Rate. :mrgreen:


Ex0rzist - Mo 04.11.02 21:41

Hallo,

und wie sieht es aus, wenn man seine eigene IP abfragt?

Zum Beispiel: if Ip <> "192.(...)" then Online

Das ist nur so eine Idee, denn ich weiss grad nicht, ob die eigene Ip-Adresse im Offline-Status auch anders als z.bsp. "192.168.0.1" sein kann.


littlemike1005 - Mo 04.11.02 21:42
Titel: Klar
Sicher dat habe ich ne FLAT :wink: :lol: :D

Ne jetzt im ernst auch wenn ich DFÜ trenne zeigt Proggi Online.
Aber mein Rechner kennt aber auch nur den Status online. Ob gleich ich diesen Monat noch nicht viel traffic habe erst 489 MB

Gruss Michael


Ex0rzist - Mo 04.11.02 21:52
Titel: Re: Klar
littlemike1005 hat folgendes geschrieben:
Ob gleich ich diesen Monat noch nicht viel traffic habe erst 489 MB


Dann besorg´ dir Kazaa. Dann hast du das täglich. :lol:


littlemike1005 - Mo 04.11.02 21:54
Titel: Habe ich
Ich habe Kazaa aber was soll ich alles saugen??? Muke? wüsste nicht was!!!

Habe ja hoffe ja das meine Brude da abhilfe schaft der ist diese Woche wieder da.


Cashels - Di 05.11.02 10:49

Wenns diese Problem mit DSL gibt, wieso pingt ihr nicht ne x-beliebige Adresse an und wenn ihr ein reply kriegt seid ihr online, ansonsten halt nicht.

Gruss,
Tom


littlemike1005 - Di 05.11.02 12:07
Titel: Nein denke nicht
ne ich denka das es nicht so gut ist einen ping oder so zu setzen da viele ihr DFÜ so haben das wenn wein Programm auf das Internet zugreifen will wählen sie sich ein (ist auch nicht ganz mein ding aber gut).

aber ist gibt da eine kompo bei [url] http://www.magsys.co.uk/delphi/ [/url] die gibt ein conhandel (was auch immer das ist) zurück daran kann man erkennen ob on line oder offline (0 = offline >0 online)

Beispiel ist auch dabei. Ach ja die Kompo kann auch selber ein DFÜ wählen und Verbindung herstellen, abfragen (Traffic), usw. ist super das teil.[/url]


Delete - Di 05.11.02 12:48

Also bei mir geht der Code:
Win2000 SP2, T-DSL bei T-Online, DFÜ-Netzwerkeintrag, DSL-Modem, Netzwerkkarte.


littlemike1005 - Di 05.11.02 14:07
Titel:
Windows XP Prof., T-DSL, DFÜ-Netzwerkeintrag, DSL-Modem, Netzwerkkarte.

Geht der Code nicht mach das über die Kompo.


Delete - Di 05.11.02 14:14

Seltsam. :?


O'rallY - Di 05.11.02 19:31

Win XP Pro, 1&1 DSL, Fritz!web DSL, geht nicht über DFÜ sondern über einen DNS Router, eintrag in Netzwerkeigenschaften als LAN-Verbindung

Kein Code, den ich bisher versucht habe, funktioniert.


patrick - Sa 09.11.02 19:35

och nöö.

die sache mit der online,offlineprüfung wurd schon so oft durchgekaut

tino kannst du die verschiedenen möglichkeiten nicht mal in das faq bringen :?:


DataCool - Di 12.11.02 11:14

So ich hoffe jetz ist die Formatierung richtig !!

Also, ich überprüfe den Online/Offline Status immer indem versuche einen Ping auf einen Server im Internet abzusetzen, schlägt dieser fehl versuche ich die Standard-Internetverbindung zu wählen. Danach wieder die Überprüfung per Ping.

Code zum wählen der Standard-Internetverbindung :


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
function ConnectWWW : Boolean; 
var
  dwConnectionTypes: DWORD; 
begin   
  result := true;   
  dwConnectionTypes := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN 
    + INTERNET_CONNECTION_PROXY;    
  // if not InternetGetConnectedState(@dwConnectionTypes, 0) then     
  // not connected      
  if not InternetAutodial(INTERNET_AUTODIAL_FORCE_ONLINE or       
    INTERNET_AUTODIAL_FORCE_UNATTENDED, 0) 
  then     
    begin       
      // error       
      result := false;     
    end; 
end;

Code zum Beenden der Standard-Internetverbindung:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
Procedure DisConnectWWW; 
var   
  dwConnectionTypes: DWORD; 
begin    
  dwConnectionTypes := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN 
    + NTERNET_CONNECTION_PROXY;    
  if InternetGetConnectedState(@dwConnectionTypes, 0) then     
  // connected     
  InternetAutodialHangup(0); 
end;


Data

(13.11.02 09:17 Tino) Code-Tags eingefügt. HTML ist im Forum nicht verwendbar.


ebi - Di 12.11.02 21:31

Jungs ich habe nach dem scheiß auch schon gesucht!

Nie was gefunden. 2Wochen jeden Abend gesucht. Keiner weiß was, noch nicht mals "Profis" die damit in der Firma programmieren.

Warum lasst ihr den Benutzer nciht einfach selbst entscheiden ob er online oder offline ist?

Oder Pingt wirklich einen Server an, egal ob sich dann automatisch eine Verbindung aufbaut.
Lasst den Benutzer dann halt vorher kurz "OK" anklicken, dass EVENTUELL eine Verbindung zum Internet aufgebaut wird.
Das fenster kann man dann ja noch so einstellen, dass der Benutzer das für immer ausblenden kann.


ICQ arbeitet auch so nur ohne warung, dass eine verbindung aufgebaut werden könnte.

Wenn ihr doch noch eine Lösung findet, sagt mir doch bitte bescheid!!!

Bis dann mal