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).

Figure 1: Logdrill's terminal UI shows the latest web requests.

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).

[...]

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

  • 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.

  • Treasure Hunt

    A geolocation guessing game based on the popular Wordle evaluates a player's guesses based on the distance from and direction to the target location. Mike Schilli turns this concept into a desktop game in Go using the photos from his private collection.

  • Ready to Rumble

    A Go program writes a downloaded ISO file to a bootable USB stick. To prevent it from accidentally overwriting the hard disk, Mike Schilli provides it with a user interface and security checks.

  • Motion Sensor

    Inotify lets applications subscribe to change notifications in the filesystem. Mike Schilli uses the cross-platform fsnotify library to instruct a Go program to detect what's happening.

  • Treasure Map

    To help track down a particular photo, Mike Schilli often turns to his cellphone's geosearch function. Replicating this functionality with Go and Fyne turned out to be a trouble-free experience.

comments powered by Disqus