AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Erkennen ob ein Rechner "lokal" im Netz ist oder nicht?
Thema durchsuchen
Ansicht
Themen-Optionen

Erkennen ob ein Rechner "lokal" im Netz ist oder nicht?

Ein Thema von Bernhard Geyer · begonnen am 17. Jun 2016 · letzter Beitrag vom 17. Jun 2016
Antwort Antwort
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#1

Erkennen ob ein Rechner "lokal" im Netz ist oder nicht?

  Alt 17. Jun 2016, 09:55
Ich habe das Problem erkennen zu müssen ob eine Nutzer unterwegs ist (und sich nur lokal am Laptop identifizieren konnte bzw. maximal per VPN im Firmennetz eingewählt ist) oder ober er "richtig" im Netz hängt.

Frage ist also ob ich diesen Zustand unterscheiden kann.
Gibt es hierfür eine WinAPI oder muss ich das über "andere Infos" indirekt heraus finden?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.874 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Erkennen ob ein Rechner "lokal" im Netz ist oder nicht?

  Alt 17. Jun 2016, 10:10
Anhand der IP (Netz)?
Markus Kinzler
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#3

AW: Erkennen ob ein Rechner "lokal" im Netz ist oder nicht?

  Alt 17. Jun 2016, 10:32
Mein Ansatz wäre zuerst einmal die IP des Rechners zu ermitteln.

Ist sie aus einem dieser Bereiche, so ist der Rechner (höchstwahrscheinlich) nur in einem lokalen Netz.
Code:
10.0.0.0 bis 10.255.255.255
172.16.0.0 bis 172.31.255.255
192.168.0.0 bis 192.168.255.255
Bei Problemen mit dem Netzwerk werden auch IPs aus dem Bereich 169.xxx.xxx.xxx vergeben.

Ist die IP nicht aus einem der Bereiche, so würd' ich davon ausgehen, dass er im Internet ist.

Was verstehst Du konkret unter "richtig im Netz"?
Auf irgendeine Weise Vollzugriff auf alles? Egal ob über Router, Modem ...

Dann würd' ich ein Ping auf einen Timeserver versuchen. Klapp das, so ist man im Netz.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Erkennen ob ein Rechner "lokal" im Netz ist oder nicht?

  Alt 17. Jun 2016, 10:34
"Richtig im Netz" = Er sitzt an einem Arbeitsplatz auf dem Firmengelände.
Nicht richtig im Netz = Er sitzt irgendo in der Welt und hat sich evtl. per VPN ins Netz gewählt (Und sieht dort evtl. auch fast alle Ressourcen die über VPN erreichbar sind).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Erkennen ob ein Rechner "lokal" im Netz ist oder nicht?

  Alt 17. Jun 2016, 10:49
Mmm,
diese Diskussion scheint immer wieder mal hoch zu kochen. Wenn wir die ganze Philosophie weg lassen, dann scheint trace route Dein Stichwort zu sein. Zumindest das "lokale" Netz sollte den Adressen nach bekannt sein. Taucht eine oder mehrere Adressen auf die nicht zu "lokal" gehören, sollte man zweifeln.
Wenn Du richtig was verlässliches brauchst solltest Du einen Netzwerker fragen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.874 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Erkennen ob ein Rechner "lokal" im Netz ist oder nicht?

  Alt 17. Jun 2016, 10:54
Es kommt hier auch auf das/die verwendete VPN-Verfahren/Software an.
Markus Kinzler
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.395 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Erkennen ob ein Rechner "lokal" im Netz ist oder nicht?

  Alt 17. Jun 2016, 11:43
"Richtig im Netz" = Er sitzt an einem Arbeitsplatz auf dem Firmengelände.
Nicht richtig im Netz = Er sitzt irgendo in der Welt und hat sich evtl. per VPN ins Netz gewählt (Und sieht dort evtl. auch fast alle Ressourcen die über VPN erreichbar sind).
wie wäre es einen "Ping" Dienst im Firmennetzwerk laufen zu lassen (feste IP, fester Port) und im VPN Gateway diesen Port für die externe Netze sperren. Deine Software kann dann beim Start / während der Laufzeit den Pingserver per TCPClient versuchen zu verbinden
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#8

AW: Erkennen ob ein Rechner "lokal" im Netz ist oder nicht?

  Alt 17. Jun 2016, 12:10
"Richtig im Netz" = Er sitzt an einem Arbeitsplatz auf dem Firmengelände.
Ok: Dann solltest Du (meines wissens nach) eine IP aus den oben genannten Blöcken am Rechner vorfinden.

Nicht richtig im Netz = Er sitzt irgendo in der Welt und hat sich evtl. per VPN ins Netz gewählt (Und sieht dort evtl. auch fast alle Ressourcen die über VPN erreichbar sind).
Außerhalb des VPNs würd' ich hier irgendeine IP erwarten. Es kann eine beliebige IP von 'nem Provider ... sein, aber auch wiederum eine aus den obigen IP-Blöcken, da sich der Rechner ja in einem anderen Firmen- oder Heimnetz ... befinden könnte.

Innerhalb des VPNs würd' ich eine IP aus dem Firmennetz erwarten, also eigentlich den gleichen IP-Block, wie "einfach so" in der Firma.

Ok, merke gerade, mit dem was ich schreibe, läuft man nur in 'nen Kreis, es hilft nicht wirklich.

Welche Informationen hast Du für den konkreten Fall noch:

Dynamische IP?
DCHP-Server?
Anmeldeserver für 'ne Domäne?

Hier würd' ich dann für die Feststellung, ob man im Firmennetz ist, prüfen, ob diese Rechner per Ping ... erreichbar sind.
IPConfig /all auf der Kommandozeile könnte auch weitere Informationen liefern.
Die Infos kann man aber sicherlich auch über 'ner API bekommen bzw. sie stehen (teilweise) in der Registry.

Bezieht sich Deine Fragestellung auf ein konkretes Problem in einem bestimmten Firmennetz oder ist sie eher allgemein gehalten?

Handelt es sich um eine konkrete Frage für ein bestimmtes Firmennetz, dann lass Dir den IP-Bereich des Firmennetzes geben. Du musst dann "nur" prüfen, ob die IP des Rechners aus diesem Netz ist. Ist sie aus dem Netz, liegt die Vermutung nahe, dass sich der Rechner (anmeldetechnisch) im Firmennetz befindet. Über welchen Weg er da reingekommen ist, lässt sich so aber wohl eher nicht ermitteln.

In der Registry solltest Du unter
Code:
SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
etliche Informationen zum Netzwerk finden. Eventuell kannst Du da ja anmelde- bzw. standortabhängig Unterschiede feststellen, die Dir eine sichere Prüfung ermöglichen.
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#9

AW: Erkennen ob ein Rechner "lokal" im Netz ist oder nicht?

  Alt 17. Jun 2016, 13:41
Mann könnte gucken ob die VPN Netzwerkkarte (Virtuell) eine Verbindung hat oder nicht
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz