Go terminal program geolocates website visitors

Programming Snapshot – Go Geolocation

© Lead Image © bowie15, 123RF.com

© Lead Image © bowie15, 123RF.com

Article from Issue 286/2024
Author(s):

Rather than using Google Analytics to geolocate visitors to his website, Mike Schilli uses a simple terminal program in Go for a live-tracking session.

Whether users are browsing through my US blog [1] or finding out about the city hiking trails [2] I've put together in my adopted home of San Francisco, it gives me great pleasure to see how readers navigate the content by tracing the associated web server's logs. In this issue, the terminal UI, Logdrill, grabs one or more access logfiles on the web host, finds which pages have been requested, and displays the latest hits in a continuously scrolling list box. The bottom line of the terminal UI even lists the country of origin of a requesting web client and some of the user's geodata (Figure 1).

A web request's source IP can be used to determine where it came from. Before the web server delivers the requested page, it writes this address – along with the date and path information for the requested page – to the access.log file (Figure 2).

Digging Deeper

This IP can now be used to determine where in the world the request to the web server originated. This goes beyond a reverse lookup of the client's DNS entry, which only takes you to the domain in the best case.

[...]

Use Express-Checkout link below to read the full article (PDF).

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • What's Going On?

    Experienced sys admins always use the same commands to analyze problematic system loads on Linux. Mike Schilli bundles them into a handy Go tool that shows all the results at a glance.

  • Programming Snapshot – Go Network Diagnostics

    Why is the WiFi not working? Instead of always typing the same steps to diagnose the problem, Mike Schilli writes a tool in Go that puts the wireless network through its paces and helps isolate the cause.

  • At a Glance

    Using extensions in Go and Ruby, Mike Schilli adapts the WTF terminal dashboard tool to meet his personal needs.

  • Sweet Dreams

    Bathtub singer Mike Schilli builds a Go tool that manages song lyrics from YAML files and helps him learn them by heart, line by line.

  • Fighting Chaos

    When functions generate legions of goroutines to do subtasks, the main program needs to keep track and retain control of ongoing activity. To do this, Mike Schilli recommends using a Context construct.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More

News