Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 249085
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T21:23:50+00:00 2026-05-11T21:23:50+00:00

I have a function in my company’s site that uses the cgi.remote_host variable to

  • 0

I have a function in my company’s site that uses the cgi.remote_host variable to call an API provided by hostip.info and return the country of orgin. The way this is supposed to work is:

  • the function finds the country from the API,
  • runs a query against our local database to determine which site we are going to forward
    the user to, and
  • redirects the user to the appropriate site.

If for any reason, we can’t associate a country with one of our regions, we redirect the user to a default site.

What actually happens is that, occasionally, our server cannot locate the API and we get a timeout error.

This is a proxy of the function we’re calling to get the territory:

<cffunction name="getGeoInfo" access="public" output="true" returntype="any" hint="call getGeoIP API and check country against DB">
    <cfargument name="IPAddress" required="yes" type="string" />

    <!--- Calling hostip API to get our Geo IP information --->
    <cfhttp url="http://api.hostip.info/?ip=#arguments.IPAddress#" method="get" result="geoIP" />

    <!--- Try to parse the file, if it can't parse, we don't create the variable --->
    <cftry>
        <cfset geoIPXML = xmlParse(geoIP.fileContent) />
    <cfcatch type="any" />
    </cftry>

    <!--- If variable was created, perform the function to get territory info --->
    <cfif isDefined("geoIPXML")>
        <cfset countryAbbrev = geoIPXML.HostipLookupResultSet['gml:featureMember']['hostip']['countryabbrev'].xmlText />

        <cfquery name="theTerritory" datasource="#request.dsource#">
            SELECT territory
            FROM countries
            WHERE countryCode = <cfqueryparam value="#countryAbbrev#" cfsqltype="cf_sql_varchar" />
        </cfquery>

        <!--- If no record was found, set locale to default --->
        <cfif theTerritory.recordcount EQ 0>
            <cfset returnLocale = "default" />
        <cfelse>
            <!--- Otherwise set it to territory found in DB --->
            <cfset returnLocale = theTerritory.territory />
        </cfif>
    <cfelse>
    <!--- if no XML file was returned, set locale to default --->
        <cfset returnLocale="default" />
    </cfif>

    <cfreturn returnLocale />
</cffunction>

What am I missing here? How should I change this function so that if the http request times out, that I still return my default?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-11T21:23:50+00:00Added an answer on May 11, 2026 at 9:23 pm

    Wrap the <cfhttp> call in <cftry>.

    Also, I would have the catch block just return the defaultLocale rather than do nothing and then check for the existence of geoIPXML.

    <cftry>
    
        <cfhttp url="http://api.hostip.info/?ip=#arguments.IPAddress#" 
                method="get" 
                result="geoIP"
                throwOnError="yes" />
        <cfset geoIPXML = xmlParse(geoIP.fileContent) />
    
    <cfcatch type="any">
       <cfreturn "default">
    </cfcatch>
    
    </cftry>
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 121k
  • Answers 122k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer Can you do the rotation in the log? Have 7… May 12, 2026 at 12:35 am
  • Editorial Team
    Editorial Team added an answer I mostly use XML for publishing, not to store data,… May 12, 2026 at 12:35 am
  • Editorial Team
    Editorial Team added an answer If you want to capture a global hotkey without a… May 12, 2026 at 12:35 am

Related Questions

I have a function in my company's site that uses the cgi.remote_host variable to
There is a field in my company's Contacts table. In that table, there is
When I start my application I get: The ConnectionString property has not been initialized.
Sorry, if this is a noobish question, but I'm just getting started with Rails
I have developed a solution that relies on an AJAX call to retrieve information

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.