Home

Awesome

CircleCI Travis CI v1.41 license Go Report Card platform

pexpo

result
pexpo is ping sending tui tool with cool clomun & logging loss-count in the multi platforms(Windows, Mac, Linux...).
pexpo has tui engine is termbox-go, sending ICMP engine is go-fastping.
So, pexpo's code is NATIVE The Go Programming Language application. This is inspired the pinger, Exping.
And, This app use with root(sudo) privilege. Because using socket of icmp.

Current pexpo's version: 1.41
(scroll fix.)

Download

Download Page: https://github.com/nnao45/pexpo/releases/latest

Install

$ brew install nnao45/pexpo/pexpo

if you install with brew, please make ping-list, for example, following text.

$ cat << EOT > ping-list.txt
8.8.8.8	google.com
8.8.4.4	google.com
208.67.220.123 OpenDNS
216.146.35.35 Dyn Internet Guide
216.146.36.36 Dyn Internet Guide
77.88.8.8 Yandex.DNS
77.88.8.1 Yandex.DNS
77.88.8.88 Yandex.DNS
77.88.8.2 Yandex.DNS
77.88.8.7 Yandex.DNS
77.88.8.3 Yandex.DNS
180.76.76.76 Baidu DNS
114.114.114.114 Baidu DNS
80.80.80.80 Freenom World
80.80.81.81 Freenom World
8.26.56.26 Comodo Secure DNS
8.20.247.20 Comodo Secure DNS
106.186.17.181 OpenNIC
106.185.41.36 OpenNIC
2001:4860:4860::8888 www.google.com
EOT

Okay, and run :blush:

$ sudo pexpo -f ping-list.txt

Usage

    pexpo | pexpo.exe [-i interval] [-t timeout] [-f ping-list] [-A] [-H] [-S] [-V]

Examples:
    ./pexpo -i 500ms -t 1s -f /usr/local/ping-list.txt
    pexpo.exe -i 500ms -t 1s -f C:\Users\arale\Desktop\ping-list.txt

Option:
    -i Sending ICMP interval time(Default:500ms, should not be lower this).
       You must not use "200" or "1" or..., must use "200ms" or "1s" or ... , so use with time's unit.

    -t Sending ICMP timeout time(Default:3s)
       You must not use "200" or "1" or..., must use "200ms" or "1s" or ... , so use with time's unit.
       this "timeout" is Exact meaning, fastping.NewPinger() receives OnRecv struct value interval.

    -f Using Filepath of ping-list(Default:current_dir/ping-list.txt).

    -A If you want to write on ping-list -- such as Cisco's show ip arp -- , 
       "Internet  10.0.0.1                0   ca01.18cc.0038  ARPA   Ethernet2/0",
	   Ignoring string "Internet", So It is good as you copy&paste show ip arp line.
	   
    -V if you DON'T want to make file "ping-list", should use this option.
       this option is run "vi", and make tmpfile...pexpo this file as ping-list.

<HTTP mode options!>

Examples:
    ./pexpo -H -i 500ms -t 1s -f /usr/local/curl-list.txt
    pexpo.exe -S -i 500ms -t 1s -f C:\Users\arale\Desktop\curl-list.txt
       (If you want to "Request, http and https", Using Both -H & -S.)
	
Option:
    -H This optison is like "curl". So you Sending HTTP(:80) GET Request instead of the PING...!
	   
    -S This optison is like "curl". So you Sending HTTP"S"(:443) GET Request instead of the PING...!
	
       -H or -S options HTTP/HTTPS GET Request instead of the PING.
       (Just like, curl -LIs www.google.com -o /dev/null -w '%{http_code}\n')
       This Request is ververy simple GET Request, Only Getting status code(No header, No form, No getting data.)

       And, if http status code is "200", string color is Blue, else Red.

Demo (macOS 10.13.1):apple:

result

Demo (Ubuntu16.04):penguin:

result

Demo (windows10):four_leaf_clover:

result

Demo (windows10 & HTTPING):earth_asia:

result

Support, Running NO NEED text file mode

Before run main, make ping-list with "vi".

$ sudo pexpo -V

you write, for example, following text,

8.8.8.8	google.com
8.8.4.4	google.com
216.146.35.35 Dyn Internet Guide
216.146.36.36 Dyn Internet Guide
180.76.76.76 Baidu DNS
114.114.114.114 Baidu DNS
80.80.80.80 Freenom World
80.80.81.81 Freenom World
8.26.56.26 Comodo Secure DNS
8.20.247.20 Comodo Secure DNS
106.186.17.181 OpenNIC
106.185.41.36 OpenNIC
2001:4860:4860::8888 www.google.co

okay, and push ":wq", run the pexpo :relieved:
result

Implementation

more...

Release note

Have a nice go hacking days:sparkles::wink:

Writer & License

pexpo was writed by nnao45 (WORK:Network Engineer, Twitter:@A_Resas, MAIL:n4sekai5y@gmail.com).
This software is released under the MIT License, see LICENSE.