Herkunft über IP

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

  • Herkunft über IP

    hallo,
    ich als php-fastnix-könner hab ne frage.
    ich will nämlich gerne wissen wie man über die ip die herkunft bekommt.
    In meinem fall brauche ich aber nur dass es prüft ob jemand aus der schweiz ist oder nicht.

    also z.B: wenn jemand aus der Schweiz kommt, wird ein text gezeigt, wenn nicht ein anderer

    danke für jede hilfe

  • #2
    http://www.ip2location.com/
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      gethostbyaddr() gibt dir einen String zurück, den du z.B. auf das Vorkommen von .ch prüfen kannst.
      PHP-Code:
      $ip '192.168.1.2';
      $temp gethostbyaddr($ip);
      if(
      $temp != $ip){
         if(
      strpos($temp,'.ch') !== false){
            die(
      'Du bist Schweizer');
         }else{
            die(
      'Deine IP ist unschweizerisch');
         }
      }else{
         die(
      'Die IP konnte nicht zu einem Namen aufgelöst werden');

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Original geschrieben von jahlives
        gethostbyaddr() gibt dir einen String zurück, den du z.B. auf das Vorkommen von .ch prüfen kannst.
        das ist aber nicht absolut sauber .... ich kann mir ja auch auf meine deutsche ip eine schweizer domain legen ... und dann?
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          :/ hmm und funktionieren tuts auch nicht es kommt bei mir immer (und bei einem anderen)
          Die IP konnte nicht zu einem Namen aufgelöst werden

          Kommentar


          • #6
            womit wir wieder beim 2. post wären. (es gibt auch noch andere anbieter)
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              ja aber für sowas will ich nicht geld ausgeben

              Kommentar


              • #8
                hmm und funktionieren tuts auch nicht es kommt bei mir immer
                Du hast nicht zufälligerweise die IP Adresse, die ich im Code Schnippel hatte drinn stehen lassen ?
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #9
                  oops, änder ich glei

                  Kommentar


                  • #10
                    Du weisst was 192-er Adressen sind und warum die sicher nicht zu einem Namen aufgelöst werden können

                    Gruss

                    tobi
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar


                    • #11
                      ja, ich habs durch $ip = getenv(HTTP_X_FORWARDED_FOR); ersetzt und nu gehts auch jetzt muss ich nur einen probanten aus der schweiz finden ^^

                      Kommentar


                      • #12
                        Original geschrieben von Spezialist
                        ja aber für sowas will ich nicht geld ausgeben
                        Sowas gibbet auch gratis. In der Regel kosten diese Listen erst Geld, wenn Du die IP bis zum verteiler auf der strasse verfolgen willst
                        h.a.n.d.
                        Schmalle

                        http://impressed.by
                        http://blog.schmalenberger.it



                        Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                        ... nur ohne :-)

                        Kommentar


                        • #13
                          also ich hab mir mal bei www.maxmind.com einen account bestellt - da gibt es auch einen demo account.

                          kostet 50$ für 500.000 abfragen und ohne zeitl. beschränkung.. da komme ich dann ewig aus.

                          PHP-Code:
                          <?php

                          $ipaddress   
                          $_SERVER['REMOTE_ADDR'];
                          $license_key "xxxxxxxxxxxxxxx" ;

                          $query "http://maxmind.com:8010/a?l=" $license_key "&i=" $ipaddress;
                          $url parse_url($query);
                          $host $url["host"];
                          $path $url["path"] . "?" $url["query"];
                          $timeout 1;
                          $fp fsockopen ($host8010$errno$errstr$timeout);
                          if (
                          $fp) {
                            
                          fputs ($fp"GET $path HTTP/1.0\nHost: " $host "\n\n");
                            while (!
                          feof($fp)) {
                              
                          $buf .= fgets($fp128);
                            }
                            
                          $lines split("\n"$buf);
                            
                          $country $lines[count($lines)-1];
                            
                          fclose($fp);
                          } else {
                            
                          # enter error handing code here
                          }
                          echo 
                          $country;

                          ?>
                          nach der $country leite ich dann per header weiter.

                          LG
                          Wunki
                          ps: code oben funkt natürlich nur mit einer gültigen lizenz ($licence_key)

                          Kommentar


                          • #14
                            So zuverlässig kann so etwas nicht funktionieren.

                            Habe soeben http://www.ip2location.com/ ausprobiert, hier das Ergebnis:

                            Your IP Address is x.x.x.x
                            You're located in
                            (UK) UNITED KINGDOM

                            You're connecting to the Internet through
                            DIGEX

                            Sitze aber gerade in Frankfurt und nicht in London

                            Kommentar


                            • #15
                              das hängt damit zusammen, wo deine ip registriert ist. sowas kenne ich. nur anders gehts halt meist auch nicht.
                              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                              Kommentar

                              Lädt...
                              X