139 lines
2.5 KiB
Markdown
139 lines
2.5 KiB
Markdown
# Introduction
|
|
|
|
Tcping is ping probe command line tool, supporting ICMP, TCP and HTTP protocols.
|
|
|
|
You can also use it to query IP information from [https://ifconfig.is](https://ifconfig.is).
|
|
|
|
# Features
|
|
|
|
- Support ICMP/TCP/HTTP protocols
|
|
- Query basic IP information
|
|
|
|
# Installation
|
|
|
|
1. Download latest [release](https://github.com/i3h/tcping/releases/latest) (recommend)
|
|
|
|
2. Use go get
|
|
|
|
```
|
|
go get -u github.com/i3h/tcping/cmd/tcping
|
|
```
|
|
|
|
3. Build on your own
|
|
|
|
```
|
|
git clone https://github.com/i3h/tcping.git
|
|
cd tcping/cmd/tcping
|
|
go build
|
|
```
|
|
|
|
# Usage
|
|
|
|
```
|
|
-h string
|
|
HTTP Ping
|
|
-i string
|
|
ICMP Ping
|
|
-m string
|
|
MTR Trace
|
|
-q string
|
|
Query ip information
|
|
-t string
|
|
TCP Ping
|
|
-v Version
|
|
```
|
|
|
|
# Examples
|
|
|
|
```bash
|
|
# Test port
|
|
$ tcping google.com 443
|
|
|
|
TCP OPEN [2404:6800:4003:c03::71]:443
|
|
|
|
# Test with protocol
|
|
$ tcping https://google.com
|
|
|
|
Continent: North America
|
|
Country : United States
|
|
Latitude : 37.751000
|
|
Longitude: -97.822000
|
|
TimeZone : America/Chicago
|
|
IsEU : false
|
|
ASN : 15169
|
|
ORG : GOOGLE
|
|
|
|
Proxy : false
|
|
Scheme : https
|
|
Host : google.com
|
|
DNS Lookup: 0.85 ms
|
|
TCP : 1.62 ms
|
|
TLS : 3.11 ms
|
|
Process : 32.91 ms
|
|
Transfer : 0.15 ms
|
|
Total : 38.72 ms
|
|
|
|
# HTTP ping
|
|
$ tcping -h https://google.com
|
|
|
|
Proxy : false
|
|
Scheme : https
|
|
Host : google.com
|
|
DNS Lookup: 0.92 ms
|
|
TCP : 1.71 ms
|
|
TLS : 2.99 ms
|
|
Process : 32.24 ms
|
|
Transfer : 0.14 ms
|
|
Total : 38.10 ms
|
|
|
|
# ICMP ping
|
|
$ tcping -i google.com
|
|
|
|
ICMP OPEN 172.217.194.113 2.0 ms
|
|
|
|
# Query IP info
|
|
$ tcping -q google.com
|
|
|
|
Continent: North America
|
|
Country : United States
|
|
Latitude : 37.751000
|
|
Longitude: -97.822000
|
|
TimeZone : America/Chicago
|
|
IsEU : false
|
|
ASN : 15169
|
|
ORG : GOOGLE
|
|
|
|
# Test port
|
|
$ tcping -t google.com:443
|
|
|
|
TCP OPEN google.com:443
|
|
```
|
|
|
|
# Note
|
|
|
|
Root permission is required when running ICMP ping, since it needs to open raw socket.
|
|
|
|
You can either use sudo command, or set setuid bit for tcping.
|
|
|
|
```bash
|
|
# Use sudo for one-time ping
|
|
$ sudo tcping -i google.com
|
|
|
|
# Set setuid bit
|
|
$ sudo chown root:root tcping
|
|
$ sudo chmod u+s tcping
|
|
|
|
```
|
|
|
|
# License
|
|
|
|
See the [LICENSE](https://github.com/i3h/tcping/blob/master/LICENSE.md) file for license rights and limitations (MIT).
|
|
|
|
# Acknowledgements
|
|
|
|
[lmas/icmp_ping.go](https://gist.github.com/lmas/c13d1c9de3b2224f9c26435eb56e6ef3)
|
|
|
|
[sparrc/go-ping](https://github.com/sparrc/go-ping)
|
|
|
|
[davecheney/httpstat](https://github.com/davecheney/httpstat)
|