Skip to content
/ ip Public

A TCP server written in Go that returns the client's IP address and country. It supports various response modes, including TCP plain text, HTTP plain text, HTTP JSON and animation!.

License

Notifications You must be signed in to change notification settings

onionj/ip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YourIP Server

YourIP Server is a TCP server written in Go that returns the client's IP address. It supports various response modes, including tcp plain text, HTTP plain text, and HTTP JSON. Additionally, it features a fun IP streaming animation.

You can access the YourIP Server at yourip.top.

Run Server:

make
yourip -b 80 -g
--bind -b
    The address to bind the TCP server to. (default ":8080")
--geolocation -g
    Optional IP geolocation service. (its downlaod Country IP blocks database (70MB) )

How it works

The server uses the net package in Go to resolve the TCP address, start a listener, and accept incoming connections. It sets a deadline of one minute for each connection and responds with an HTTP 200 OK message containing the client's IP address.

Response Modes

  • Plain Text: Suitable for pure TCP connections like NetCat.
    • Netcat: echo -e "" | nc yourip.top 80
  • HTTP Text: Designed for browsers and curl requests.
    • Curl: curl http://yourip.top
    • Open this addres on browser http://yourip.top
    • Netcat: echo -e "GET /" | nc yourip.top 80
  • HTTP JSON: Designed for browsers and curl requests.
    • Curl: curl http://yourip.top/json
    • Open this addres on browser http://yourip.top
    • Netcat: echo -e "GET /json" | nc yourip.top 80
  • Animation: Suitable for pure TCP connections like NetCat.
    • Netcat: echo -e "1" | nc yourip.top 80 (Banner)
    • Netcat: echo -e "2" | nc yourip.top 80 (Flight)

Animation Mode

The server can stream the client's IP address in an animated format.
for example connect to the server with netcat (nc) and send 1 or 2 or use these commands:
echo -e "1" | nc yourip.top 80
echo -e "2" | nc yourip.top 80

Watch the video

License

This project is licensed under the MIT License.

About

A TCP server written in Go that returns the client's IP address and country. It supports various response modes, including TCP plain text, HTTP plain text, HTTP JSON and animation!.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published