Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/projectdiscovery/asnmap
Go CLI and Library for quickly mapping organization network ranges using ASN information.
https://github.com/projectdiscovery/asnmap
asn asn-lookup cidr-range osint recon
Last synced: 4 days ago
JSON representation
Go CLI and Library for quickly mapping organization network ranges using ASN information.
- Host: GitHub
- URL: https://github.com/projectdiscovery/asnmap
- Owner: projectdiscovery
- License: mit
- Created: 2022-09-29T01:19:40.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-13T16:48:18.000Z (13 days ago)
- Last Synced: 2025-01-16T01:12:38.938Z (11 days ago)
- Topics: asn, asn-lookup, cidr-range, osint, recon
- Language: Go
- Homepage:
- Size: 658 KB
- Stars: 810
- Watchers: 16
- Forks: 79
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Go CLI and Library for quickly mapping organization network ranges using ASN information.
Features •
Installation •
Usage •
Running asnmap •
Join Discord****
# Features
![image](https://user-images.githubusercontent.com/8293321/192092220-5d734305-fd3e-43fb-919a-91ff5296dfd2.png)
- **ASN to CIDR** Lookup
- **ORG to CIDR** Lookup
- **DNS to CIDR** Lookup
- **IP to CIDR** Lookup
- **ASN/DNS/IP/ORG** input
- **JSON/CSV/TEXT** output
- STD **IN/OUT** support## Installation
asnmap requires **Go 1.21** to install successfully. To install, just run the below command or download pre-compiled binary from [release page](https://github.com/projectdiscovery/asnmap/releases).
```console
go install github.com/projectdiscovery/asnmap/cmd/asnmap@latest
```## Usage
```console
asnmap -h
```This will display help for the tool. Here are all the flag it supports.
```console
Usage:
./asnmap [flags]Flags:
INPUT:
-a, -asn string[] target asn to lookup, example: -a AS5650
-i, -ip string[] target ip to lookup, example: -i 100.19.12.21, -i 2a10:ad40::
-d, -domain string[] target domain to lookup, example: -d google.com, -d facebook.com
-org string[] target organization to lookup, example: -org GOOGLE
-f, -file string[] targets to lookup from fileCONFIGURATIONS:
-config string path to the asnmap configuration file
-r, -resolvers string[] list of resolvers to useUPDATE:
-up, -update update asnmap to latest version
-duc, -disable-update-check disable automatic asnmap update checkOUTPUT:
-o, -output string file to write output to
-j, -json display json format output
-c, -csv display csv format output
-v6 display ipv6 cidr ranges in cli output
-v, -verbose display verbose output
-silent display silent output
-version show version of the project
```## Configuring ASNMap CLI
ASNMap CLI is built on top of the ASNMap API that requires API Token from [ProjectDiscovery Cloud Platform](https://cloud.projectdiscovery.io/?ref=api_key) that can be configured using environment variable or using interactive `-auth` option as shown below.
### Using environment variable
```console
export PDCP_API_KEY=*************
```### Using auth option
```console
asnmap -auth___ _____ __
/ _ | / __/ |/ /_ _ ___ ____
/ __ |_\ \/ / ' \/ _ / _ \
/_/ |_/___/_/|_/_/_/_/\_,_/ .__/
/_/projectdiscovery.io
[INF] Get your free api key by signing up at https://cloud.projectdiscovery.io
[*] Enter PDCP API Key (exit to abort): *************
[INF] Successfully logged in as (@user)
```## Running asnmap
**asnmap** support multiple inputs including **ASN**, **IP**, **DNS** and **ORG** name to query ASN/CIDR information.
| Input | ASN | DNS | IP | ORG |
| ------- | --------- | ------------- | --------------- | -------- |
| Example | `AS14421` | `example.com` | `93.184.216.34` | `GOOGLE` |Input can be provided either using specific options or STDIN which accepts all the supported formats. Single, multiple (comma-separated) and file input is supported for all the options.
```console
echo GOOGLE | ./asnmap -silent
```Example input for asnmap:
```console
asnmap -a AS45596 -silent
asnmap -i 100.19.12.21 -silent
asnmap -d hackerone.com -silent
asnmap -org GOOGLE -silent
```### Default Run
**asnmap** by default returns the CIDR range for given input.
```console
echo GOOGLE | ./asnmap___ _____ __
/ _ | / __/ |/ /_ _ ___ ____
/ __ |_\ \/ / ' \/ _ / _ \
/_/ |_/___/_/|_/_/_/_/\_,_/ .__/
/_/ v0.0.1
projectdiscovery.ioUse with caution. You are responsible for your actions
Developers assume no liability and are not responsible for any misuse or damage.8.8.4.0/24
8.8.8.0/24
8.35.200.0/21
34.3.3.0/24
34.4.4.0/24
34.96.0.0/20
34.96.32.0/19
34.96.64.0/18
34.98.64.0/18
34.98.136.0/21
34.98.144.0/21
```
### JSON Output**asnmap** by default displays CIDR range, and all the information is always available in JSON format, for automation and post processing using `-json` output is most convenient option to use.
```console
echo hackerone.com | ./asnmap -json -silent | jq
``````json
{
"timestamp": "2022-09-19 12:14:33.267339314 +0530 IST",
"input": "hackerone.com",
"as_number": "AS13335",
"as_name": "CLOUDFLARENET",
"as_country": "US",
"as_range": [
"104.16.0.0/14",
"104.20.0.0/16",
"104.21.0.0/17"
]
}
{
"timestamp": "2022-09-19 12:14:33.457401266 +0530 IST",
"input": "hackerone.com",
"as_number": "AS13335",
"as_name": "CLOUDFLARENET",
"as_country": "US",
"as_range": [
"2606:4700:8390::/44"
]
}
```
### CSV Output**asnmap** also support csv format output which has all the information just like JSON output
```console
echo hackerone.com | ./asnmap -csv -silent
``````console
timestamp|input|as_number|as_name|as_country|as_range
2022-09-19 12:15:04.906664007 +0530 IST|hackerone.com|AS13335|CLOUDFLARENET|US|104.16.0.0/14,104.20.0.0/16,104.21.0.0/17
2022-09-19 12:15:05.201328136 +0530 IST|hackerone.com|AS13335|CLOUDFLARENET|US|2606:4700:9760::/44
```### Using with other PD projects
Output of asnmap can be directly piped into other projects in workflow accepting stdin as input, for example:
- `echo AS54115 | asnmap | tlsx`
- `echo AS54115 | asnmap | dnsx -ptr`
- `echo AS54115 | asnmap | naabu -p 443`
- `echo AS54115 | asnmap | naabu -p 443 | httpx`
- `echo AS54115 | asnmap | naabu -p 443 | httpx | nuclei -id tech-detect`## Use asnmap as a library
Examples of using asnmap from Go code are provided in the [examples](examples/) folder.
## Acknowledgements
- [Frank Denis](https://github.com/jedisct1/) for maintaining free IPtoASN database.
-----