#1 29. April 2012 Provider Zuweisung hi, folgende frage wie bewerkstellige ich es einen webseiten besucher anhand der IP zu sagen bei welchem ISP dieser ist. Idee IP anfänge wie 84.112 oder auch 84.114 z.b zu sagen du benuzt Chello bei usern die eine IP haben die mit 86.123 und 86 beginnt ->du hast tele2 bitte um hilfe wie ich sowas am performantesten programmieren kann + Multi-Zitat Zitieren
#2 29. April 2012 AW: Provider Zuweisung Dafür solltest du auf eine Fertige Datenbank zurückgreifen! [G]IP to provider database[/G] + Multi-Zitat Zitieren
#3 29. April 2012 AW: Provider Zuweisung hey danke nur das is zu viel des guten es ist wirklich nur für einen mini member bereich daher sollte da eher was kleines passen und nur der provider anhand von anfangs zahlen "ausgelesen" werden. + Multi-Zitat Zitieren
#4 29. April 2012 AW: Provider Zuweisung https://apps.db.ripe.net/search/query.html Weiß nicht ob die ne API haben, aber da haste dann auf jeden Fall die richtigen Daten.. Und international scheint ja auch zu funzen.. + Multi-Zitat Zitieren
#5 30. April 2012 AW: Provider Zuweisung Danke für die Postings nur das ist vieeeeeeeel zu überzogen, es geht einfach darum mir bekannte ip bereiche / blöcke in eine liste einzutragen und dann bei einem besuch zu sagen du hast , tele2 du hast inode - das ganze dient für einen kleinen internen chat .. daher sind sagen wie ip2location und ripe komplett übertrieben.. + Multi-Zitat Zitieren
#6 30. April 2012 AW: Provider Zuweisung Warum ist das Übertrieben ? Wenns ne api gibt ist das das einfachste. Und wenn nicht gehts mit CURL. Ich würde sagen das es viel mehr stress ist das sich jetzt selber zu programmieren, als was fertiges zu benutzen... + Multi-Zitat Zitieren
#7 30. April 2012 Zuletzt bearbeitet: 30. April 2012 AW: Provider Zuweisung Nur versteht ihr da leider alle viel zu viel .. Es geht kurzgesamt um folgendes meine freunde logen sich in diesen kleinen chat ein , da ich gerne wissen möchte mit welchem provider die da sind (so kann ich sagen die sind @home oder @work oder @handy) - dazu brauch ich keine API oder ähnliches aufgepushtes. Sondern ich dachte wie schon im Startpost definiert an eine art ip block 'vergabe' wo ich sage wenn ip 84.112 oder 86.111 dann = chello / ist es aber 89.121 oder 86.134 = inode mehr möcht ich nicht - keine genaue IP befindet sich in Vienna und so .. sondern echt nur eine minimal angabe für meine zwecke. Quasi wie hier die sperrung der IPS.: PHP: <? php $remotehost = gethostbyaddr ( $_SERVER [ 'REMOTE_ADDR' ]); $pro = gethostbyaddr ( $_SERVER [ 'REMOTE_ADDR' ]); $pro1 = strstr ( $pro , '.' ); if ( $pro1 == '.dip.t-dialin.net' ){ $provider = "Dt. Telekom" ; } elseif ( $pro1 == '.hsi.kabelbw.de' ){ $provider = "Kabel BW" ; }elseif ( $pro1 == '.pools.arcor-ip.net' ){ $provider = "ARCOR" ; }elseif ( $pro1 == '' ){ $provider = "lokal" ; } else { $provider = "noch nicht bekannt" ; } echo "<p>Ihre IP-Adresse lautet: " . $_SERVER [ 'REMOTE_ADDR' ] . ". Ihre Einwahlnummer ist: " . $remotehost . ". Ihr Internetanbieter ist: " . $provider . "</p>" ; ?> Nun müsst ihr mir helfen das noch auf ip blöcke zu erweitern + Multi-Zitat Zitieren
#8 30. April 2012 Zuletzt bearbeitet: 30. April 2012 AW: Provider Zuweisung Ja und genau das macht doch die Datenbank vom RIPE.... >_< Du sendest die IP da hin und bekommst den Namen des Providers zurück.. Was ist da das Problem? Warum willst du dir selbst was zusammenbasteln, wenns schon was bestehendes gibt.. Wenn du dir das selbst zusammenbaust, musste dann auch alle möglichen Provider aufnehmen.. Und nehmen wir an du hast dann alle möglichen in Österreich, was ist wenn einer der Kumpels in Deutschland im Urlaub ist oder was weiß ich wie und wo... //EDIT: http://apps.db.ripe.net/whois/lookup/ripe/inetnum/84.112.212.31.xml Einfach parsen mit dem XML-Parser von PHP und schon haste den Provider.. + Multi-Zitat Zitieren
#9 30. April 2012 AW: Provider Zuweisung Es is mir einfach zu over dressed da immer eine abfrage hinsenden - da ich meinen personengreis eingrenzen kann und dieser sich innerhalb ATs befindet reicht es vollkommen .. Es gibt bei uns genau 7 - 10 Provider in AT die benutzt werden diese zu integrieren ist ein hops .. ausserdem die geolocation abfrage @ripe und co gibt ja auch stadt und co zurück was ich nicht brauche also warum ne anfrage hinballern? + Multi-Zitat Zitieren
#10 30. April 2012 AW: Provider Zuweisung weil mans kann.. versteh dein problem auch nicht. die lösung die oben geschrieben wurde ist die einfachste.. + Multi-Zitat Zitieren
#11 30. April 2012 AW: Provider Zuweisung Wenn sich deine Freunde mit einer neuen (unbekannten) IP einloggen/anmelden, kannst du doch diese IP abfragen und das Ergebnis cachen. Nur wenn der gleiche Freunde mit einer neuen IP sich wieder anmeldet/einloggt, musst du erneut einen Request senden. Sehe hier also niemanden, der mir Gewehren auf Spatzen schießen will. + Multi-Zitat Zitieren
#12 30. April 2012 AW: Provider Zuweisung Ja nur warum sollte ich chacen und ko wenn es simpler geht und man dazu keinerlei zig 1000 codezeilen und apis und datenbanken benötigt. Es geht darum es ist ein mobilechat wo ich mit meinen leuten chatte , und da diese entweder fixe ips (@ work - @ home) oder dynamische (@ unterwegs), so kann ich dies zuordnen. Da es bei uns in AT nur wirklich 10 provider gibt und handy anbieter würde es komplett reichen die IP bereiche einfach zu filtern und zu sagen alles was mti 213.47.*.* reinkommt = chello Aber bitte dann seh ich das hier als gescheitert denn für so ne mini winzi sache eine API usen halt ich für übertrieben und unsinnig! + Multi-Zitat Zitieren
#13 30. April 2012 AW: Provider Zuweisung Also man kann sowas cool programmieren und nicht so cool... Wenn du deinen nicht so coolen Weg einschlagen willst, dann bitte... Du nimmst die IP des Clients und machst daraus mit ip2long() nen Integer.. Das gleiche aus deinen Adress-Bereichen (oder speicherst sie gleich so) und vergleichst dann ob es größer als der 1. und kleiner als der 2. Wert ist.. Das wars... Und der coole Weg ist die Abfrage an die RIPE Datenbank zu schicken, den von bis bereich in eine lokale DB oder Datei zu schreiben (um zu cachen) und dann beim nächsten mal zuvor daraus mit der oben genannten Methode abzugleichen.. Have fun! + Multi-Zitat Zitieren
#14 30. April 2012 AW: Provider Zuweisung Wenn deine Leute je zwei statische und eine dynamische IP haben, frag doch einfach beim ersten Login ab, wo sie sich gerade befinden. Beim nächsten Login schaust du, ob die IP schon vorhanden ist. Wenn ja, weißt du wo die Leute sitzen. Wenn nicht vorhanden, einfach erneut abfragen. Das machst du, bis du 3 unterschiedliche Typen hast. Fertig. Ansonsten kannst du halt die IP-Adressen auch einfach kürzen. Quasi nach den zwei ersten Blöcken abbrechen. PHP: $ip = '127.0.0.1' ; $parts = explode ( '.' , $ip ); if ( '1270' == $parts [ 0 ]. $parts [ 1 ] ) { echo "Localhost?" ; } + Multi-Zitat Zitieren
#15 1. Mai 2012 AW: Provider Zuweisung Klingt schon sehr sehr fein - auch wenn ich nun nerven muss in meinem oben beispiel wie würdest du das angehen um performant zu lösen? + Multi-Zitat Zitieren
#16 1. Mai 2012 AW: Provider Zuweisung So wie es theQuest in seinem Beispiel gemacht hat. Das sind nurn paar if abfragen. Solange es sich nur um einen kleinen chat handelt sollte jeder server/webspace damit klar kommen. Oder hab ich die frage falsch verstanden? + Multi-Zitat Zitieren
#17 1. Mai 2012 AW: Provider Zuweisung Kannst noch cachen und die IP's zwischenspeichern. Aber wird kaum was bringen wenn es so klein ist. + Multi-Zitat Zitieren
#18 1. Mai 2012 Zuletzt bearbeitet: 1. Mai 2012 AW: Provider Zuweisung PHP: <? php function getProvider ( $remote , $list ) { foreach( $list as $provider => $range ) { if( $remote >= ip2long ( $range [ 'from' ]) && $remote <= ip2long ( $range [ 'to' ])) return $provider ; } return false ; } $providerList = Array( "Chello" => Array( "from" => "84.112.0.0" , // oder gleich das Ergebnis von ip2long("84.112.0.0") dort rein "to" => "84.115.43.7" // oder gleich das Ergebnis von ip2long("84.115.43.7") dort rein ), "Lokal" => Array( "from" => "192.168.0.0" , "to" => "192.168.0.255" ) ); if(( $provider = getProvider ( ip2long ( $_SERVER [ 'REMOTE_ADDR' ]), $providerList )) !== false ) echo $provider ; ?> Einfach das Array erweitern um deine Provider.. Und am besten den Wert von ip2long direkt dort speichern und das ip2long in der if-Abfrage rausnehmen.. Viel Spaß + Multi-Zitat Zitieren