All Projects → robphoenix → Trawl

robphoenix / Trawl

Licence: apache-2.0
⛵️ A strong fishing net for dragging along the sea bottom to collect IP addresses and similar flotsam & jetsam

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Trawl

Golden Gate
Framework to connect wearables and other IoT devices to mobile phones, tablets and PCs with an IP-based protocol stack over Bluetooth Low Energy
Stars: ✭ 223 (+193.42%)
Mutual labels:  networking, ip
Iptools
PHP Library for manipulating network addresses (IPv4 and IPv6)
Stars: ✭ 163 (+114.47%)
Mutual labels:  networking, ip
Ship
A simple, handy network addressing multitool with plenty of features
Stars: ✭ 81 (+6.58%)
Mutual labels:  networking, ip
Cnp3
Computer Networking : Principles, Protocols and Practice (first and second edition, third edition is being written on https://github.com/cnp3/ebook)
Stars: ✭ 471 (+519.74%)
Mutual labels:  networking, ip
Flask weather
☀️ ☔️ Flask app to auto-detect local weather based off of user's IP address.
Stars: ✭ 70 (-7.89%)
Mutual labels:  ip
Quantumgate
QuantumGate is a peer-to-peer (P2P) communications protocol, library and API written in C++.
Stars: ✭ 62 (-18.42%)
Mutual labels:  networking
Netmap Tutorial
Netmap tutorial at SIGCOMM 2017 and AsiaBSDCon 2018
Stars: ✭ 60 (-21.05%)
Mutual labels:  networking
Avenue
Wrapper around URLSession and URLSessionTask to enable seamless integration with Operation / OperationQueue.
Stars: ✭ 58 (-23.68%)
Mutual labels:  networking
Tooter
Add 'Toot' and 'Share to Mastodon' buttons to the web
Stars: ✭ 75 (-1.32%)
Mutual labels:  networking
Vos backend
vangav open source - backend; a backend generator (generates more than 90% of the code needed for big scale backend services)
Stars: ✭ 71 (-6.58%)
Mutual labels:  networking
Gke Network Policy Demo
This guide demonstrates how to improve the security of your Kubernetes Engine by applying fine-grained restrictions to network communication. You will provision a simple HTTP server and two client pods in a Kubernetes Engine cluster, then use a Network Policy restrict connections from client pods.
Stars: ✭ 66 (-13.16%)
Mutual labels:  networking
Nmstate
Nmstate is a library with an accompanying command line tool that manages host networking settings in a declarative manner.
Stars: ✭ 63 (-17.11%)
Mutual labels:  networking
Tanya
GC-free, high-performance D library: Containers, networking, metaprogramming, memory management, utilities
Stars: ✭ 70 (-7.89%)
Mutual labels:  networking
Squid
Declarative and Reactive Networking for Swift.
Stars: ✭ 61 (-19.74%)
Mutual labels:  networking
Addon Wireguard
WireGuard - Home Assistant Community Add-ons
Stars: ✭ 72 (-5.26%)
Mutual labels:  networking
Mqtt
MQTT broker written in D, using vibe.d
Stars: ✭ 59 (-22.37%)
Mutual labels:  networking
Netdynamics
Data-oriented networking playground for the reliable UDP transports
Stars: ✭ 65 (-14.47%)
Mutual labels:  networking
Networktoolkit
This project contains networking primitives for use with .NET.
Stars: ✭ 71 (-6.58%)
Mutual labels:  networking
Pytcp
PyTCP is an attempt to create fully functional TCP/IP stack in Python. It supports TCP stream based transport with reliable packet delivery based on sliding window mechanism and basic congestion control. It also supports IPv6/ICMPv6 protocols with SLAAC address configuration. It operates as user space program attached to Linux TAP interface. As of today stack is able to send and receive traffic over Internet using IPv4 and IPv6 default gateways for routing. Since goal of this project is purely educational (at least at this point) the clarity of code is preferred over its efficiency. For the same reason security features are not being implemented just yet unless they are integral part of TCP/IP suite protocols specification.
Stars: ✭ 65 (-14.47%)
Mutual labels:  ip
Proxypool
Golang实现的IP代理池
Stars: ✭ 1,134 (+1392.11%)
Mutual labels:  ip

trawl

A strong fishing net for dragging along the sea bottom to collect IP addresses and similar flotsam & jetsam.

Prints out network interface information to the console, much like ifconfig/ipconfig/ip/ifdata.

Go Report Card

❯ trawl
eth1   10.62.10.6     255.255.255.252  10.62.10.4/30   1500  00:ff:28:31:d0:72  fe80::d824:2e8d:bf80:69c9/64  2
wifi0  192.168.1.242  255.255.255.0    192.168.1.0/24  1500  10:02:b5:e4:de:8c  fe80::ed51:1db6:b32:ad90/64   2

Flags

Show column names.

❯ trawl -n
Name   IPv4 Address   IPv4 Mask        IPv4 Network    MTU   MAC Address        IPv6 Address                  Address Count
----   ------------   ---------        ------------    ---   -----------        ------------                  -------------
eth1   10.62.10.6     255.255.255.252  10.62.10.4/30   1500  00:ff:28:31:d0:72  fe80::d824:2e8d:bf80:69c9/64  2
wifi0  192.168.1.242  255.255.255.0    192.168.1.0/24  1500  10:02:b5:e4:de:8c  fe80::ed51:1db6:b32:ad90/64   2

Filter interface names using a case insensitive regular expression.

❯ trawl -f wi
wifi0  192.168.1.242  255.255.255.0  192.168.1.0/24  1500  10:02:b5:e4:de:8c  fe80::ed51:1db6:b32:ad90/64  2

❯ trawl -n -f eth
Name  IPv4 Address  IPv4 Mask        IPv4 Network   MTU   MAC Address        IPv6 Address                  Address Count
----  ------------  ---------        ------------   ---   -----------        ------------                  -------------
eth1  10.62.10.6    255.255.255.252  10.62.10.4/30  1500  00:ff:28:31:d0:72  fe80::d824:2e8d:bf80:69c9/64  2

Get a list of available interfaces. Without any flags trawl only prints out interfaces which are up.

❯ trawl -i
eth0, eth1, lo, wifi0, wifi1, eth2

The loopback interface is ignored by default, but you can include it if you like.

❯ trawl -l
eth1   10.62.10.6     255.255.255.252  10.62.10.4/30   1500  00:ff:28:31:d0:72  fe80::d824:2e8d:bf80:69c9/64  2
lo     127.0.0.1      255.0.0.0        127.0.0.0/8     1500  -                  ::1/128                       2
wifi0  192.168.1.242  255.255.255.0    192.168.1.0/24  1500  10:02:b5:e4:de:8c  fe80::ed51:1db6:b32:ad90/64   2

Specify the particular interface you want to know about.

❯ trawl wifi0
wifi0  192.168.1.242  255.255.255.0  192.168.1.0/24  1500  10:02:b5:e4:de:8c  fe80::ed51:1db6:b32:ad90/64  2

Show only the specific information you want, requires an interface name be provided.

# IPv4 Address
❯ trawl -a wifi0
192.168.1.242
# IPv4 Subnet Mask
❯ trawl -m wifi0
255.255.255.0
# IPv4 Network
❯ trawl -s wifi0
192.168.1.0/24
# IPv4 MTU
❯ trawl -u wifi0
1500
# MAC Address
❯ trawl -hw wifi0
10:02:b5:e4:de:8c
# IPv6 Address & Mask
❯ trawl -6a wifi0
fe80::ed51:1db6:b32:ad90/64

Print a complete list of addresses for an interface.

❯ trawl -4c wifi0
192.168.0.100/24
10.90.0.18/16

❯ trawl -6c wifi0
fe80::defe:3c33:4335:e669/64
fe80::/10

You can also get your public IP address.

❯ trawl -p
104.238.169.73

All the same functionality is available in Windows.

C:\Users\robphoenix>trawl -l -n
Name                         IPv4 Address   IPv4 Mask        IPv4 Network    MTU   MAC Address        IPv6 Address                  Address Count
----                         ------------   ---------        ------------    ---   -----------        ------------                  -------------
Ethernet                     10.62.10.6     255.255.255.252  10.62.10.4/30   1500  00:ff:28:31:d0:72  fe80::d824:2e8d:bf80:69c9/64  2
Wi-Fi                        192.168.1.242  255.255.255.0    192.168.1.0/24  1500  10:02:b5:e4:de:8c  fe80::ed51:1db6:b32:ad90/64   2
Loopback Pseudo-Interface 1  127.0.0.1      255.0.0.0        127.0.0.0/8     -1    -                  ::1/128                       2

Installation

If you don't have the Go programming language installed you can download the appropriate binary for your system from the releases page, rename it as trawl, and put it in your path (howto ubuntu/howto windows).

I have not tried all of the binaries, so if there's a problem with one let me know, thanks.

If you do have Go installed...

go get -u github.com/robphoenix/trawl

Acknowledgements

I totally used the awesome @jessfraz's battery as a starting point and continual touchstone for how to build this. Trawl is far from perfect, but I've learnt from it, which was more the point.

Boat graphic by Freepik from Flaticon is licensed under CC BY 3.0. Made with Logo Maker

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].