OS Erkennung?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • OS Erkennung?

    Hi
    ich möchte gerne ein script erstellen mit dem ich nur linuxuser weiterleiten will und andere os ausperren will zu testzwecken.
    wie kann ich das am besten umsetzen, das das script nut dieses os weiterleitet?
    soweit ich weis wird das ja im "x-forwarded for" übermittelt. Korrigiert mich wenn ich falsch liege. Nur wie lege ich das im script fest?
    Danke schon mal im voraus.

  • #2
    Hier ist ein Teil eines Tutorials, das ich demnächst hier veröffentlichen will... Es liest den USER-AGENT-String des Browsers aus, ist daher nicht 100% zuverlässig: Der String kann gefälscht oder unterdrückt werden oder das Betriebssystem gar nicht anzeigen. Die Konvention unter den grossen Browsern (IE, Netscape, Mozilla) ist aber, das OS anzugeben.

    Wenn Du's ganz professionell willst: nmap kann das Betriebssystem 100%ig zuverlässig anhand des "TCP Fingerprint" erkennen... Hab mal was drüber gelesen... Braucht aber wahrscheinlich nen Zimmer voll Linux-Gurus zum Umsetzen :-)

    --------------------------------

    define ("bpWindows","Windows");
    define ("bpMac","Macintosh");
    define ("bpLinux","Linux");
    define ("bpSunOS","SunOS");
    define ("bpUnix","Unix");
    define ("bpSunOS","SunOS");
    define ("bpNeOS","NeOS");
    define ("bpPowerPC","Mac PowerPC");
    define ("bpUnknown","Unbekannt");

    function getOS()
    { global $HTTP_USER_AGENT;

    $agentstring = $HTTP_USER_AGENT;

    if (stristr($agentstring,'Win')) {
    $platform = bpWindows;
    } else if (stristr($agentstring,'Mac')) {
    $platform = bpMac;
    } else if (stristr($agentstring,'Linux')) {
    $platform = bpLinux;
    } else if (stristr($agentstring,'Unix')) {
    $platform = bpUnix;
    } else if (stristr($agentstring,'Mac_PowerPC')) {
    $platform = bpPowerPC;
    } else if (stristr($agentstring,'SunOS')) {
    $platform = bpSunOS;
    } else if (stristr($agentstring,'NeOS')) {
    $platform = bpNeOS;
    }
    else {
    $platform = bpUnknown;
    }

    return $platform;

    } // ende funktion


    if (getOS() == bpLinux)
    echo "Sie benutzen Linux!";
    else
    echo "Sie benutzen kein Linux, sondern ".getOS();

    -----------------------------------

    Im Tutorial kommen zu diesem Thema noch funktionen zum Auslesen der Betriebssystemversion (Kernel bei Linux/95,98,NT,2000,XP bei Windows usw.)!



    [Editiert von pekka am 21-02-2002 um 20:18]

    Kommentar


    • #3
      thx das ist schonmal ne geniale antwort. Allerdings ist wohl die sache mit dem "ausperren" wohl nicht 100%, da man ja leider die header faken kann und somit dieses script wie wohl auch alle umgehen kann. Aber es schließt wenigstens mal die unerfahrenen aus, die zwar das betribssystem nicht haben und nicht wissen wie sie sowas umgehen.
      Danke für deine mühe.

      Kommentar


      • #4
        Ähm ja nur hat das script noch nen fehler und zwar komm ich selbst mit linux nich rein ausser ich fake egal unter welchem os meinen header auf linux. Nur dann hab ich zugriff.
        redhat usw. werden abgewiesen.

        Kommentar


        • #5
          Da fehlt wohl noch ne Regel! Mit welchem Browser fährst Du & Was für ein header wird angezeigt?

          Kommentar


          • #6
            browser ist der IE6. Wenn ich unter user agent die daten fake dann wertet mich das script als linux user aus. Allerdings nur dann. Mit nem reinen linux ists dem script egal und geht auf unknown.

            Kommentar


            • #7
              Das mit den gefakten Headern ist klar, aber welchen Browser benutzt Du unter Linux und was für einen Header zeigt er an? Lynx? wget? Konqueror?

              Die Auswertung erfolgt ja ganz simpel, das Skript schaut einfach, ob bestimmte Schlagwörter im Header vorkommen.

              Kommentar


              • #8
                lynx

                Kommentar

                Lädt...
                X