get the .csv list here, either free or not-so-free:
http://www.maxmind.com/app/geoip_country

store it in a table.

use this code as your custom tag, call it CountryIPWhois.cfm:

<cfparam name="Attributes.IPAddress" default="">

<cfif NOT Len(Attributes.IPAddress)>
<!--- Find out the user's IP address, and from this work out the country
--->
     <cfset Attributes.IPAddress = CGI.REMOTE_ADDR>
</cfif>

<cfset Attributes.IPAddress = Trim(Attributes.IPAddress)>

<cfif Len(Attributes.IPAddress)>
<!--- we have an IP address --->
     <!--- check it has 4 parts --->
     <cfif ListLen(Attributes.IPAddress, ".") EQ 4>
          <!--- split it up into the 4 parts --->
          <cfset w = ListGetAt(Attributes.IPAddress, 1, ".")>
          <cfset x = ListGetAt(Attributes.IPAddress, 2, ".")>
          <cfset y = ListGetAt(Attributes.IPAddress, 3, ".")>
          <cfset z = ListGetAt(Attributes.IPAddress, 4, ".")>

          <cfif IsNumeric(w) AND IsNumeric(x) AND IsNumeric(y) AND
IsNumeric(z)>
          <!--- all parts are numeric --->
               <cfset IPNumber = (16777216*w) + (65536*x) + (256*y) + z>

               <!--- query the database to find out what country this IP
address belongs to --->
               <cfquery name="getCountry" datasource="CountryIPWhois">
                    SELECT CountryCode, Country
                    FROM IPCountry
                    WHERE #IPNumber# >= IPNumberStart
                    AND #IPNumber# <= IPNumberEnd
               </cfquery>

               <cfif getCountry.RecordCount GT 0>
                    <cfset CALLER.IP_CountryCode = getCountry.CountryCode>
                    <cfset CALLER.IP_Country = getCountry.Country>
               <cfelse>
                    <cfset CALLER.IP_Error = "Error: IP address not found
in database">
               </cfif>
          <cfelse>
               <cfset CALLER.IP_Error = "Error: Part of the IP address
isn't numeric">
          </cfif>
     <cfelse>
          <cfset CALLER.IP_Error = "Error: IP address must have 4 parts
seperated by dots">
     </cfif>
<cfelse>
     <cfset CALLER.IP_Error = "Error: No IP address found">
</cfif>


call it like this: <cf_CountryIPWhois IPAddress="#IPAddress#">




                                                                                       
                              
                    "Jenny"                                                            
                              
                    <[EMAIL PROTECTED]        To:     <[EMAIL PROTECTED]>              
                       
                    place.org>             cc:                                         
                              
                                           Subject:     Re: [ cf-dev ] IP and whois    
                              
                    22/09/2004                                                         
                              
                    12:37                                                              
                              
                    Please respond                                                     
                              
                    to dev                                                             
                              
                                                                                       
                              
                                                                                       
                              



could well be if i don't figured out the cfx ... thanks Tom.  Going to try
the freebie way first.


Jenny
Admin and Development, chicksNchaps
http://www.chicksNchaps.co.uk
 ----- Original Message -----
 From: Tom Smith
 To: [EMAIL PROTECTED]
 Sent: Wednesday, September 22, 2004 11:52 AM
 Subject: Re: [ cf-dev ] IP and whois

 we use ip2location any use to you?

 http://www.ip2location.com/
 ----- Original Message -----
 From: Jenny
 To: [EMAIL PROTECTED]
 Sent: Wednesday, September 22, 2004 11:40 AM
 Subject: [ cf-dev ] IP and whois


 Hi all,

 Anyone know of a util that will look up an ip address and update a
 database
 with country location?

 ie, I log the remote_addr .. the util scans the ip's in the database and
 updates a country field based on the lookup.  Loads of whois stuff out
 there
 if i wanted to do it one by one, but it'd be nice to automate it,
 especially
 with the volumes we deal with.

 thanks,

 Jenny
 Admin and Development, chicksNchaps
 http://www.chicksNchaps.co.uk



 ---
 Outgoing mail is certified Virus Free.
 Checked by AVG anti-virus system (http://www.grisoft.com).
 Version: 6.0.766 / Virus Database: 513 - Release Date: 18/09/2004



 --
 These lists are syncronised with the CFDeveloper forum at
 http://forum.cfdeveloper.co.uk/
 Archive: http://www.mail-archive.com/dev%40lists.cfdeveloper.co.uk/

 CFDeveloper Sponsors and contributors:-
 *Hosting and support provided by CFMXhosting.co.uk* :: *ActivePDF provided
 by activepdf.com*
       *Forums provided by fusetalk.com* :: *ProWorkFlow provided by
 proworkflow.com*
            *Tutorials provided by helmguru.com* :: *Lists hosted by
 gradwell.com*

 To unsubscribe, e-mail: [EMAIL PROTECTED]




-- 
These lists are syncronised with the CFDeveloper forum at 
http://forum.cfdeveloper.co.uk/
Archive: http://www.mail-archive.com/dev%40lists.cfdeveloper.co.uk/
 
CFDeveloper Sponsors and contributors:-
*Hosting and support provided by CFMXhosting.co.uk* :: *ActivePDF provided by 
activepdf.com*
      *Forums provided by fusetalk.com* :: *ProWorkFlow provided by proworkflow.com*
           *Tutorials provided by helmguru.com* :: *Lists hosted by gradwell.com*

To unsubscribe, e-mail: [EMAIL PROTECTED]

Reply via email to