How to Extract IP Addresses of a Telegram User with STUN Protocol

How to Extract IP Addresses of a Telegram User with STUN Protocol

How to Extract IP Addresses of a Telegram User with STUN Protocol

Have you ever wondered how messaging apps like Telegram work behind the scenes? If you’re curious about discovering the IP address of a user you’re interacting with on Telegram.

This article will guide you through the process using the STUN (Session Traversal Utilities for NAT) protocol. By analyzing network traffic, we can extract the IP address of a Telegram user. Let’s dive in!

What is Wireshark?How to Extract IP Addresses of a Telegram User with STUN Protocol

Before we dive into the technical aspects, let’s briefly introduce Wireshark for those who might be new to it.

Wireshark is a popular, open-source network protocol analyzer. It allows you to capture and inspect the data traveling back and forth on your network in real time.

It’s a versatile tool used by network professionals, security experts, and hobbyists alike.

  • Step 1: Download Wireshark and Prepare for Capture

First, you need to download and install Wireshark, a powerful network traffic analysis tool, on your computer. Visit the official Wireshark website and choose the compatible version for your operating system.

  • Step 2: Filter STUN Traffic

Once you have Wireshark installed, open it and you’ll see an interface capturing real-time network traffic. To filter STUN traffic, click on the search icon in the filter bar.

Select the “String” option and type “XOR-MAPPED-ADDRESS” to filter for STUN-related packets.

  • Step 3: Initiate Data Capture:

Now, make a call via Telegram to the user whose IP address you want to extract. When the user answers the call, Wireshark will start capturing the data. Look through the captured packets for information related to the STUN protocol. This information contains the IP address of the user who received the call.

To easily identify the desired IP address, use Wireshark’s search function. Click on the “Find” option and type “XOR-MAPPED-ADDRESS” in the search line. The user’s IP address will immediately appear after that string.

Automating the Process with Golang:

If you prefer automation, you can use the Golang programming language to streamline the process. Below is an example of Golang code that automates the task of extracting the IP address of a Telegram user using Wireshark:


package main

import (







func main() {

const CAP_PATH = "/tmp/tg_cap.pcap"    // Temporary path for pcap capture file

const CAP_TEXT = "/tmp/tg_text.txt"    // Temporary path for text file with information

const CAP_DURATION = "5"               // Capture duration in seconds

// Get the external IP address of the device

ipCmd := exec.Command("curl", "-s", "")

ipOutput, err := ipCmd.Output()

if err != nil {

log.Fatal("Failed to get IP address:", err)


MY_IP := strings.TrimSpace(string(ipOutput))

// Check if Wireshark is installed

_, err = exec.LookPath("tshark")

if err != nil {

log.Println("[-] Wireshark not found. Try installing Wireshark first.")

log.Println("[+] Debian-based: sudo apt-get install -y tshark")

log.Println("[+] RedHat-based: sudo yum install -y tshark")



fmt.Println("[+] Discovering User's IP Address on Telegram using Golang")

fmt.Println("[+] Starting traffic capture. Please wait for", CAP_DURATION, "seconds.")

// Capture traffic using Wireshark

tsharkCmd := exec.Command("tshark", "-a", "duration:"+CAP_DURATION, "-w", CAP_PATH)

err = tsharkCmd.Run()

if err != nil {

log.Fatal("Failed to capture traffic:", err)


fmt.Println("[+] Traffic capture completed.")

// Extract relevant information from the captured traffic

cmd := exec.Command("tshark", "-r", CAP_PATH, "-Y", "stun && ip.dst=="+MY_IP, "-T", "fields", "-e", "stun.xor_mapped_address.address")

output, err := cmd.Output()

if err != nil {

log.Fatal("Failed to extract IP address:", err)


ipAddresses := strings.Split(strings.TrimSpace(string(output)), "\n")

fmt.Println("[+] Extracted IP address(es):")

for _, ip := range ipAddresses {



// Clean up temporary files

rmCmd := exec.Command("rm", CAP_PATH)

err = rmCmd.Run()

if err != nil {

log.Fatal("Failed to delete temporary files:", err)


fmt.Println("[+] Process completed.")



Wireshark is a powerful tool for network analysis, and understanding how to use it to extract IP addresses using the STUN protocol can be particularly valuable. By following these steps, you can gain insights into the data flowing through your network and pinpoint the information you seek.

Understanding Session Traversal Utilities for NAT (STUN

What is STUN Protocol?

Session Traversal Utilities for NAT (STUN) is a protocol that allows devices behind Network Address Translators (NAT) to discover their public IP addresses and traverse network boundaries. NAT is commonly used to connect multiple devices within a private network to the internet using a single public IP address.

However, NAT can pose challenges for applications that require direct communication with devices outside the private network. This is where STUN comes into play.

STUN provides a mechanism for devices to determine the public IP address and port of the NAT device that sits in front of them. By discovering this information, devices can establish direct peer-to-peer communication with other devices across the internet, even when they are located behind different NAT devices.

The primary function of STUN is to help devices gather information about the type of NAT they are behind and the network configuration parameters that affect their ability to connect with other devices. STUN accomplishes this by enabling devices to send STUN requests to a STUN server and receive responses containing network address information.

To initiate a STUN request, a device sends a binding request message to a STUN server. This message contains a randomly generated transaction ID and the source transport address (IP address and port) of the device. The STUN server then processes the request and sends back a binding response to the device. The response contains the public IP address and port as observed by the STUN server.

By comparing the IP address and port in the response with its own local network configuration, the device can determine if it is behind a NAT. If it is, the device can extract its public IP address from the response and use it for establishing direct communication with other devices.

In addition to gathering network address information, STUN can also provide other capabilities such as determining the presence of symmetric NAT, where the NAT device uses different source ports for each destination, and retrieving information about the device’s network path characteristics, such as its connectivity type and available bandwidth.

STUN is a fundamental protocol in the field of real-time communication applications, such as VoIP (Voice over Internet Protocol), video conferencing, online gaming, and peer-to-peer file sharing. These applications rely on STUN to enable direct communication between devices behind NAT devices without the need for complex server infrastructure.

In summary

Wireshark provides a window into the inner workings of network communication, making it an essential resource for anyone interested in the world of digital data transmission.

By leveraging the STUN protocol and analyzing network traffic using tools like Wireshark or automating the process with programming languages like Golang, you can extract the IP address of a Telegram user. Understanding this process helps shed light on the underlying mechanisms of messaging apps and promotes a deeper understanding of network protocols. However, please ensure that you use this knowledge responsibly and respect the privacy and security of others.

In the world of digital communication, understanding the intricacies of data transmission is paramount. Whether you’re a tech enthusiast, a network administrator, or just someone curious about how the internet works, Wireshark can be an invaluable tool. In this guide, we’ll delve into the details of Wireshark, specifically focusing on how to extract IP addresses using the STUN protocol.


1 Comment

  • Rivera Hall November 12, 2023

    Back in the day, when I was knee-deep in the tech world, I stumbled upon a similar challenge. It was like cracking a code, and boy, did it make my brain cells do a marathon! I vividly remember the excitement of uncovering the intricacies of the STUN Protocol

Leave a Reply

Your email address will not be published. Required fields are marked *

fb logo
recover dogecoin from a scam
recover ethereum from a scammer
hire a hacker to hack iphone
hire a hacker to hack snapchat
hire a hacker to hack a windows computer
error: Content is protected !!