#!/bin/sh# Display foreign IP addresses coming from port 8333 --or-- connected to local port 8333.# Append line at end with date and count of addresses displayed.netstat -an |awk -v date="$(date)" '$6 == "ESTABLISHED" && /:8333/ { split($5, a, ":"); print a[1] ; n++ }END { print "# " date " : " n " bitcoin clients seen." }'
tcp4 0 116 192.168.1.2.8333 80.217.82.59.45167 ESTABLISHEDtcp4 0 0 192.168.1.2.8333 68.103.101.19.29297 ESTABLISHEDtcp4 0 0 192.168.1.2.8333 79.184.79.110.1191 ESTABLISHEDtcp4 0 0 192.168.1.2.8333 61.94.216.38.10100 ESTABLISHEDtcp4 0 0 192.168.1.2.8333 113.22.164.48.10020 ESTABLISHEDtcp4 0 0 192.168.1.2.8333 85.232.113.117.8597 ESTABLISHEDtcp4 0 0 192.168.1.2.8333 46.109.12.201.3328 ESTABLISHEDtcp4 0 0 192.168.1.2.8333 62.103.58.117.3230 ESTABLISHED
#!/bin/sh# Display foreign IP addresses coming from port 8333 --or-- connected to local port 8333.# Append line at end with date and count of addresses displayed.## GNU Linux netstat separates port numbers from IP addrs using colon ':',# whereas BSD netstat separates them using a period '.'. The sed line# below converts the BSD '.' to a ':', to make it easier for awk to# split off the port.netstat -an | sed 's/\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)\.\([0-9][0-9]*\)/\1:\2/g' | awk -v date="$(date)" ' $6 == "ESTABLISHED" && /:8333/ { split($5, a, ":"); print a[1] ; n++ } END { print "# " date " : " n " bitcoin clients seen." } '
sed -r 's/([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)\.([0-9]+)/\1:\2/g' |
... sed 's/\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)\.\([0-9][0-9]*\)/\1:\2/g' | ...
sed -r 's/(([0-9]+\.){3}[0-9])\.([0-9])/\1:\3/g'