"IpSurv" has been released. It's an IP survey tool developed by Python.
🥕Installation
IpSurv's installation is as following. You aren't trouble by complex settings or any dependency problems.
$ pip install ipsurv or $ pip3 install ipsurv ☕️Let's try!
1. Surveying 192.168.1.10
Surveying '192.168.1.10', the following results are as follows.
$ ipsurv 192.168.1.10 192.168.1.10,OK,US,PRIVATE-ADDRESS-CBLK-RFC1918-IANA-RESERVED,192.168.0.0,192.168.255.255 2. Customizing output format
It' available to customize output format flexibly.
$ ipsurv 8.8.8.8 --format=geo 8.8.8.8,37.4056;-122.0775 $ ipsurv 8.8.8.8 --format=detail 8.8.8.8,OK,US,GOGL,GOGL,AS15169 Google LLC,8.8.8.0/24,37.4056;-122.0775,1600 Amphitheatre Parkway Mountain View CA 94043 United States,dns.google $ ipsurv 8.8.8.8 --format="{status}\t{geto}\t{country}\t{address}\t{hostname}" 8.8.8.8 NG - US 1600 Amphitheatre Parkway Mountain View CA 94043 United States dns.google 3. Surveying a domain with json option
If you use "json" option, You can see the results in vertical format.
$ ipsurv github.com --json=2 --add_ip { "original": "github.com", "ip": "20.27.177.113", "status": "OK", "group": "", "country": "US", "name": "MSFT", "network_start": "20.0.0.0", "network_end": "20.31.255.255" } If you'd like to retrieve more detail data, please use --format=heavy and --exhaustive option.
$ ipsurv dev.to --format=heavy --exhaustive --json=2 --add_ip { "success": false, "status": "NG", "requests": [ "RDAP", "DNSREVERSE", "IPINFO" ], "errors": [ "[Errno 1] Unknown host" ], "sequence": 1, "original": "dev.to", "target": "151.101.130.217", "ip": "151.101.130.217", "ip_int": 2540012249, "port": null, "group_int": 0, "group": "", "group_found": false, "group_status": "-", "country": "US", "timezone": "America/Los_Angeles", "name": "SKYCA-3", "handle": "SKYCA-3", "org": "AS54113 Fastly, Inc.", "cidr": "151.101.0.0/16", "network_start": "151.101.0.0", "network_end": "151.101.255.255", "geo": "37.7621,-122.3971", "address": "PO Box 78266 San Francisco CA 94107 United States", "description": "", "hostname": "", "identifier": "151.101.130.217", "identifier_int": 2540012249, "rdap_time": 1687.8, "country_updated": true, "port43": "whois.arin.net", "dnsreverse_time": 19.4, "ipinfo_time": 258.9, "city": "San Francisco", "region": "California", "postal": "94107", "target.raw": "dev.to", "target.identifier": "151.101.130.217", "target.identifier_int": 2540012249, "target.ip": "151.101.130.217", "target.url": null, "target.fqdn": "dev.to", "target.port": null, "target.status": "EXIST" } 4. Surveying self IP information
The results are as follows.
$ ipsurv self Self IP status by https://ipinfo.io Ip: 144.*.*.* Hostname: Organization: AS797 AT&T Services, Inc. Country: US City: San Jose Region: California Postal: 95103 Geo: 37.3394,-121.8950 Timezone: America/Los_Angeles LocalIp: 10.0.2.15 LocalDns: ['8.8.8.8', '8.8.4.4'] 5. Measure server reply status
Check ICMP
$ cat list.txt|ipsurv --icmp=1 $ ipsurv 8.8.8.8 --icmp=1 --format="{ip},{icmp},{icmp_time}" 8.8.8.8,8.8.8.8,ICMP_OK,45.6 Check TCP port
$ cat list.txt|ipsurv --tcp=1 $ cat list.txt|ipsurv --tcp=80 --format=country $ ipsurv www.craigslist.org --tcp=1 --format="{ip},{tcp},{tcp_time}" www.craigslist.org,208.82.238.225,TCP_OK,144.2 Check UDP port
$ cat list.txt|ipsurv --udp=1 --format="{ip},{udp},{udp_time}" Check HTTP response
$ cat list.txt|ipsurv --http=1 $ cat list.txt|ipsurv --http=2 --format=country --add_ip $ ipsurv reddit.com --http=2 --format="{ip},{http},{http_time},{http_h2}" reddit.com,151.101.1.140,HTTP_OK,1161.0,HTTP2 🍩Miscellaneous
Public IP or Private IP
Check public IP or private IP.
$ ipsurv 192.168.1.100 --format="{ip_type}" 192.168.1.100,PRIVATE $ ipsurv 8.8.8.8 --format="{ip_type}" 8.8.8.8,PUBLIC IP address <--> IP int
Convert IP address to IP int and IP int to IP address.
$ ipsurv 192.168.1.100 --format="{ip_int}" 192.168.1.100,3232235876 $ ipsurv 16777217 --format="{ip}" --identify_int 16777217,1.0.0.1 IP is in IP/subnet ranges?
Checking whether IP is in IP/subnet ranges by using --range option and in_range format.
$ ipsurv 192.168.1.10 1.0.0.1 --format="{in_range}" --range="1.0.0.1/24;192.168.1.8/24" 192.168.1.10,RANGE_OK 1.0.0.1,RANGE_OK $ ipsurv 10.0.0.1 --format="{in_range}" --range="1.0.0.1/24;192.168.1.8/24" 10.0.0.1,RANGE_NG 🥝Inspecting Apache log
Of course, IpSurv can also inspect log files containing IPs, such as Apache logs.
$ cat /var/log/httpd/access_log|ipsurv --add_ip --no_original $ cat /var/log/httpd/access_log|ipsurv --format=country --add_ip --no_original $ cat /var/log/httpd/access_log|ipsurv --format=geo --add_ip --no_original 🌽Debugging
IpSurv has verbose mode, It can output internal data for debugging.
Specifying --verbose=3, Debug data been made output.
$ ipsurv 8.8.8.8 --verbose=3 Enable verbose mode. Current:3 [Level - 1:TRACE_ERROR, 2:INFO, 3:DEBUG] 2024-11-28 01:36:05,043 - INFO - ENV(IPSURV_ARGS): {} 2024-11-28 01:36:05,043 - INFO - ENV(IPSURV_CONF): {} 2024-11-28 01:36:05,044 - INFO - ARGUMENTS: { 'add_ip': False, 'all_collect': False, 'alt_delimiter': ';', 'autodetect': False, 'begin': -1, 'collect': 'rdap;dnstxt;dnsreverse;ipinfo', 'delimiter': None, 'disable_env': False, 'enclose': None, 'end': -1, 'exhaustive': False, 'format': 'default', 'group': None, 'headers': 0, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2024-11-28 01:36:05,044 - INFO - Fixed delimiter:, 2024-11-28 01:36:05,044 - INFO - Fixed format:{original},{status},{group},{country},{name},{network_start},{network_end} 2024-11-28 01:36:05,044 - INFO - Fixed timeout:{'dns': 8.0, 'http': 8.0, 'reactivity': 8.0} 2024-11-28 01:36:05,044 - INFO - Fixed enclose: 2024-11-28 01:36:05,044 - INFO - Fixed collectors:['rdap', 'dnstxt', 'dnsreverse', 'ipinfo'] 2024-11-28 01:36:05,045 - INFO - MODE:SURVEY_IPS 2024-11-28 01:36:05,046 - INFO - IP:8.8.8.8 2024-11-28 01:36:05,046 - INFO - FQDN:None 2024-11-28 01:36:05,046 - INFO - PORT:None 2024-11-28 01:36:05,046 - DEBUG - TARGET_RAW:8.8.8.8 2024-11-28 01:36:05,046 - INFO - TARGET_IDENTIFIER:8.8.8.8 2024-11-28 01:36:05,046 - INFO - TARGET_DATA: { 'fqdn': None, 'identifier': '8.8.8.8', 'identifier_int': 134744072, 'ip': '8.8.8.8', 'port': None, 'raw': '8.8.8.8', 'status': 'EXIST', 'url': None} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2024-11-28 01:36:05,648 - INFO - RDAP:OK 2024-11-28 01:36:05,648 - INFO - RDAP_TIME(ms):596.2 2024-11-28 01:36:05,648 - DEBUG - UNNECESSARY:DNSTXT 2024-11-28 01:36:05,648 - DEBUG - UNNECESSARY:DNSREVERSE 2024-11-28 01:36:05,648 - DEBUG - UNNECESSARY:IPINFO 2024-11-28 01:36:05,649 - INFO - COLLECTED_DATA: { 'address': '1600 Amphitheatre Parkway Mountain View CA 94043 United States', 'cidr': '8.8.8.0/24', 'country': 'US', 'country_updated': True, 'description': '', 'errors': [], 'group': '', 'group_found': False, 'group_int': 0, 'group_status': '-', 'handle': 'GOGL', 'identifier': '8.8.8.8', 'identifier_int': 134744072, 'ip': '8.8.8.8', 'ip_int': 134744072, 'name': 'GOGL', ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 'target.ip': '8.8.8.8', 'target.port': None, 'target.raw': '8.8.8.8', 'target.status': 'EXIST', 'target.url': None} 2024-11-28 01:36:05,649 - DEBUG - REQUESTS: ['RDAP'] 8.8.8.8,OK,US,GOGL,8.8.8.0,8.8.8.255 🥗There are many options
IpSurv have any other many options.
In detail, You can read command options in documentation site.
Documentation site top
https://deer-hunt.github.io/ipsurv/
About Command arguments
https://deer-hunt.github.io/ipsurv/pages/command_arguments.html
deer-hunt / ipsurv
"IpSurv" is a Python program for surveying IP addresses, host information, and more.
IpSurv
ipsurv is a command-line program for surveying IP addresses, host information, and more. Also ipsurv is extensible program by Python.
Installation
$ pip install ipsurv or $ pip3 install ipsurv Requirements
-
pythonandpipcommand - Python 3.0 or later version.
If you'd like to use in Python 2.7, you can refactor to Python 2.7 code easily. See "development_debug.md".
Usage
Specify Target using Argument
$ ipsurv 192.168.1.10 $ ipsurv 192.168.1.10 192.168.1.11 $ ipsurv test-example-sample-ipsurv.com --add_ip $ ipsurv x.x.x.x --format=geo Specify Target using PIPE
$ cat ips.txt|ipsurv $ cat apache.log|ipsurv --add_ip Example result
8.8.8.8:53,8.8.8.0,US,ICMP_OK,TCP_OK,UDP_OK Survey-mode
ipsurv have two Survey-mode. Those are "Survey IPs" and "Survey Self".
Survey-mode
Description
Survey IPs
Primary mode. Surveying IP or Host or URL.
Survey Self
Surveying self IP.
Survey Self e.g.
$ ipsurv self Ip: 144.160.*.* Hostname Organization: AS797 AT&T Services, Inc. Country: US City: San Jose…

Top comments (0)