@nickreynolds2/nat-port-mapper
v1.0.3
Published
Port mapping with UPnP and NAT-PMP
Downloads
4
Maintainers
Readme
@nickreynolds/nat-port-mapper
Fast port mapping with UPnP and NAT-PMP in NodeJS
Install
npm install nat-api
Usage
import { upnpNat } from '@achingbrain/nat-port-mapper'
const client = await upnpNat({
// all fields are optional
ttl: number // how long mappings should live for in seconds - min 20 minutes, default 2 hours
description: string // default description to pass to the router for a mapped port
gateway: string // override the router address, will be auto-detected if not set
keepAlive: boolean // if true, refresh the mapping ten minutes before the ttl is reached, default true
})
// Map public port 1000 to private port 1000 with TCP
await client.map({
localPort: 1000,
protocol: 'TCP'
})
// Map public port 2000 to private port 3000 with UDP
await client.map({
publicPort: 2000,
localPort: 3000,
protocol: 'UDP'
})
// Unmap port public and private port 1000 with TCP
await client.unmap({
localPort: 1000,
protocol: 'TCP'
})
// Get external IP
const externalIp = await client.externalIp()
console.log('External IP:', ip)
// Unmap all mapped ports
client.close()
Credits
Based on alxhotel/nat-api Forked from @achingbrain/nat-port-matter
Additional Information
Purpose of this repo is to figure out why can't include @achingbrain/nat-port-mapper (and other packages build with aegir
) in Jest tests
- http://miniupnp.free.fr/nat-pmp.html
- http://wikipedia.org/wiki/NAT_Port_Mapping_Protocol
- http://tools.ietf.org/html/draft-cheshire-nat-pmp-03
License
Apache-2.0 or MIT