Lấy public IP trong code với ip.tnd.vn: cheat sheet cho đội vibe code

Chia sẻ bài viết

Mục lục
Lấy public IP trong code với ip.tnd.vn: cheat sheet cho đội vibe code
Lấy public IP trong code với ip.tnd.vn
Một endpoint, mọi ngôn ngữ: lấy IP công khai của máy trong vài dòng code.

Cả đội đang vibe code mà cứ phải hỏi "IP server mình là gì để whitelist?", "IP runner đang là bao nhiêu?". Thay vì mở trình duyệt vào trang quảng cáo đầy rẫy, hãy dùng ip.tnd.vn: gọi một request, nhận về đúng IP công khai dạng text sạch. Bài này là cheat sheet copy-paste cho cả team, từ bash tới Node, Python, Go, PHP.

Nguyên tắc: một endpoint, hai định dạng

ip.tnd.vn trả về IP mà server nhìn thấy từ phía bạn. Plain text cho người và shell, JSON cho code:

GET https://ip.tnd.vn               -> 14.167.77.227
GET https://ip.tnd.vn?format=json   -> {"ip":"14.167.77.227"}

Body text không có ký tự xuống dòng thừa, nên parse trong code không cần trim phức tạp. Có CORS * nên gọi được cả từ trình duyệt.

Bash / shell

# Lấy IP vào biến
MY_IP=$(curl -s https://ip.tnd.vn)
echo "Public IP: $MY_IP"

Node.js (fetch built-in, Node 18+)

const res = await fetch("https://ip.tnd.vn?format=json");
const { ip } = await res.json();
console.log("Public IP:", ip);

Python (requests)

import requests

ip = requests.get("https://ip.tnd.vn?format=json", timeout=5).json()["ip"]
print("Public IP:", ip)

Không muốn cài thư viện ngoài? Dùng chuẩn thư viện luôn:

from urllib.request import urlopen

ip = urlopen("https://ip.tnd.vn", timeout=5).read().decode().strip()
print("Public IP:", ip)

Go

package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	resp, _ := http.Get("https://ip.tnd.vn")
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println("Public IP:", string(body))
}

PHP

<?php
$ip = trim(file_get_contents("https://ip.tnd.vn"));
echo "Public IP: " . $ip;

JavaScript trong trình duyệt

Nhờ có CORS mở, bạn gọi thẳng từ frontend mà không cần proxy backend:

fetch("https://ip.tnd.vn?format=json")
  .then(r => r.json())
  .then(d => console.log("Your IP:", d.ip));

Mẹo cho team vibe code

  • Luôn đặt timeout: đừng để request IP làm treo app nếu mạng chập chờn. 5 giây là đủ.
  • Cache trong phiên: IP công khai không đổi mỗi giây, gọi một lần rồi lưu lại, đừng spam.
  • Dùng JSON khi parse trong code, text khi chạy shell: text gọn cho pipe, JSON an toàn cho logic.
  • Self-host, ổn định: ip.tnd.vn do TND vận hành trên Cloudflare edge, không lo bị rate limit bất ngờ như vài API miễn phí khác.

Cần server để deploy stack tự host?

Cloud VPS TND có IP sạch, SSD NVMe, đặt tại Việt Nam, hợp để chạy API, bot, n8n, hay self-host công cụ cho cả team vibe code. Gói từ 199k/tháng, tạo VPS trong vài phút và whitelist IP ngay bằng ip.tnd.vn.

Xem Cloud VPS Xem Proxy IPv4

Tham gia nhóm Vibe Coder Việt Nam

Bạn đang code cùng Claude, Codex, Gemini, Cursor hay Windsurf? Vào nhóm Facebook để trao đổi tip, debug giúp nhau, chia sẻ workflow vibe coding, và update tool mới mỗi tuần. Cộng đồng dev tự host stack đang grow nhanh tại Việt Nam.

Join nhóm trên Facebook

Hạ tầng cho dev: truy vấn SQL, PHP dựng trang, build Next.js hay đóng gói app iOS và Android đều nghẽn ở tốc độ đọc ghi ổ đĩa và xung nhịp CPU. VPS Enterprise U.2 NVMe, chip Intel Xeon Platinum xung cao dùng ổ Enterprise U.2 NVMe chạy RAID 10, IOPS đọc ghi gấp 5 đến 7 lần SATA SSD, backup hàng tuần, bàn giao trong 5 phút.