Als Deutscher Softwareentwickler in der Schweiz

Landstrasse

Drive your own Way

Share now

Um mir selbst die Sache etwas zu erleichtern habe ich mir eine Funktion zur Ermittlung von Userdaten auf Basis dessen IP-Adresse geschrieben. Notwendig ist hierzu lediglich ein Account bei MaxMind.

Den Namen der Stadt, aus der der WebSiteUser sich eingewählt hat, kann man sich somit wie folgt anzeigen lassen:
#getRemoteUserInfo(‚217.162.206.5′,’EZKdtZojDp3m‘).byName.City#

Und nun die eigentliche Funktion:
name= "getRemoteUserInfo" access= "remote" returntype= "struct" output= "false" hint= "liest Userdaten aufgrund einer IP-Adresse aus" >
 
name= "myAdress" type= "string" default= "#CGI.REMOTE_ADDR#" hint= "Die IP-Adresse zur Abfrage" >
 
name= "myLicenseKey" type= "string" required= "true" hint= "Dein LizenzKey von MaxMind" >

 

 
 
var qMaxMindByID = structNew () />
 
var qMaxMindByName = structNew () />
 
var thisField = "country,region,city,undefined,latitude,longitude,DMA,area,ISP,organization" />
 
var thisPos = 1 />
 
var thisValue = "" />
 
var stringField = "false" />
 
var resultMaxMind = "" >

  method= "get" url= "http://maxmind.com:8010/f?l=#arguments.myLicenseKey#&i=#arguments.myAdress#" >

  resultMaxMind = cfhttp.FileContent >

  from= "1" to= "#Len(resultMaxMind)#" index= "mmField" >
   
mid (resultMaxMind,mmField, 1 ) IS ‚,‘ AND NOT stringField >
     
qMaxMindByID[thisPos] = thisValue >
     
qMaxMindByName[ ‚#ListgetAt(thisField,thisPos)#‘ ] = thisValue >
     
thisPos = thisPos + 1 />
     
thisValue = "" />
   

     
mid (resultMaxMind,mmField, 1 ) IS ‚"‘ >
       
stringField = iif (stringField, "false" , "true" ) />
     

       
thisValue = thisValue & mid (resultMaxMind,mmField, 1 ) />
     

   

    Len (resultMaxMind) EQ mmField >
     
qMaxMindByID[thisPos] = thisValue />
     
qMaxMindByName[ ‚#ListgetAt(thisField,thisPos)#‘ ] = thisValue >
   

 

  resultMaxMind = structNew () >
 
resultMaxMind.byID = qMaxMindByID >
 
resultMaxMind.byName = qMaxMindByName >

  resultMaxMind >

Der einfachheithalber habe ich auf eine sichere Konvertierung der Daten von CSV verzichtet, welche aber in Beitrag CSVtoArray nachgelesen und übernommen werden können.

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Related Posts

Progressive House

https://www.beatport.com/my-beatport?genres=15

Musikproduktion & DJ Software

Alle Tipps setzen einen iMac oder Mac Book voraus (und auf Wunsch zusätzlich ein iPad): Einsteiger Profi DJay Pro DJ Softwware für Mac, iPad und

X TRA TEC

War wieder eine mega Party im xtra ! https://xtratec.ch/

Get in touch

872 Arch Ave.
Chaska, Palo Alto, CA 55318
hello@example.com
ph: +1.123.434.965

Business inquiries

hello@example.com
ph: +1.321.989.645