A pure implementation of Nmap for Nim.
Documentation will be added as this project progresses as well as commented sections in the source code.
- Non-functional in current state
- Native implementation without ExecCmd
nmapScan(host: string, Port(port: int)
nmapScan(host: string, Port(port: int, aType: Domain, sType: SockType, nType: Protocol)
- Determines local router and host on network
- IP Address
- 0 - Custom ports using portList
- SSH - 22
- TELNET 23
- HTTP - 80
- HTTPS - 443
- int - any integer
Roadmap to v1.0
[x] Basic socket support [x] Basic Port Scanner [ ] Read packet information(i.e. TTL, WindowSize) [ ] Test if Ports are filtered or not [x] Host Discovery [ ] OS Fingerprinting [ ] nmapIface() [x] NetMask support for host: string
import nmap createMask("192.168.1.1/24") for i in netMask: nmapScan(i, 80)
Result will be something like this.
192.168.1.1 Connected succesfully on 80 192.168.1.2 No route to host on 80 192.168.1.3 No route to host on 80
import nmap for p in countup(1, 999): portList.add(p) nmapHostDisc()
import nmap portList.add(22) nmapHostDisc()
Bugs in portList with Host Discovery
Adding too many ports(700+) results in too many files open.