tcping/README.md
2020-07-21 16:09:41 +08:00

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)