1.4. Network API
The Network API provides utility functions to deal with IP addresses and send HTTP requests.
Functions
-
function httpGet(string url, string username = nil, string password = nil, int timeout = nil, bool return_content = false, bool cookie_auth = false)
Performs an HTTP GET request to the specified URL.
- Parameters:
url – the URL to fetch.
username – for HTTP authentication.
password – the password for HTTP authentication.
timeout – maximum connection timeout in seconds.
return_content – enable sending response content back to the caller.
cookie_auth – Use basic (default) or cookie (used by ntopng) authentication
- Returns:
table (RESPONSE_CODE, CONTENT_TYPE, EFFECTIVE_URL), with additional CONTENT and CONTENT_LEN if return_content is enabled on success, nil otherwise.
-
function httpPost(string url, string data, string username = nil, string password = nil, int timeout = nil, bool return_content = false, bool cookie_auth = false)
Send an HTTP POST request with url encoded data.
- Parameters:
url – the target URL.
data – the url encoded data to send.
username – for HTTP authentication.
password – for HTTP authentication.
timeout – maximum connection timeout in seconds.
return_content – enable sending response content back to the caller.
cookie_auth – Use basic (default) or cookie (used by ntopng) authentication
- Returns:
table (RESPONSE_CODE, CONTENT_TYPE, EFFECTIVE_URL), with additional CONTENT and CONTENT_LEN if return_content is enabled on success, nil otherwise.
-
function postHTTPJsonData(string username, string password, string url, string json)
Send an HTTP POST request with json content.
Note
HTTP header “Content-Type: application/json” is sent.
- Parameters:
username – for HTTP authentication. Pass empty string to disable authentication.
password – for HTTP authentication. Pass empty string to disable authentication.
url – the target URL.
json – the data to post.
- Returns:
true on success, false otherwise.
-
function send_udp_data(string host, int port, string data)
Send raw UDP data to a given host and port.
- Parameters:
host – the host IP address.
port – the host port.
data – the data to send.
-
function inet_ntoa(int numeric_ip)
This is the equivalent C inet_ntoa for Lua.
- Parameters:
numeric_ip – the numeric IP address to convert.
- Returns:
the symbolic IP address.
-
function networkPrefix(string address, int netmask)
Apply a netmask to the specified IP address.
- Parameters:
address – the IP address.
netmask – the network mask to apply.
- Returns:
the masked IP address.
-
function httpRedirect(string url)
Send an HTTP redirection header to the specified URL.
Note
this must be called before sending any other HTTP data.
- Parameters:
url – the URL to redirect to.
-
function httpPurifyParam(string str)
Purify a string from the HTTP standpoint. Used to purify HTTP params.
Note
The ourigied inout string with _ that replaced chars not allowed
- Parameters:
str – the string to purify
-
function getservbyport(int port, string proto)
A wrapper for C getservbyport.
- Parameters:
port – service port.
proto – service protocol, e.g. “tcp”.
- Returns:
getservbyport result on success, the port value on failure.
-
function pingHost(string host, bool is_v6)
Send an ICMP request to the given host.
Note
this can be called multiple times on different hosts and then ntop.collectPingResults() can be used to collect the results.
- Parameters:
host – the host name/IP address.
is_v6 – true for IPv6 connections, false for IPv4.
-
function collectPingResults()
Collect the ICMP replies after ntop.pingHost() calles.
- Returns:
a table with IP address -> RTT mappings
-
function sendMail(string from, string to, string msg, string smtp_server, string username = nil, string password = nil)
Send an email to the specified address.
- Parameters:
from – sender email and name
to – recipient email and name
msg – the message to send
smtp_server – the SMTP server address (e.g. smtp://myserver.com)
username – an optional username for the SMTP authentication
password – an optional password for the SMTP authentication
- Returns:
true on success, false otherwise
-
function resolveHost(string ip)
Resolve the given IP into an host name.
Note
this call is blocking. Use getResolvedAddress() for a non blocking approach.
- Parameters:
ip – the host IP
- Returns:
the resolved host on success, nil otherwise.
-
function snmpget(string agent_host, string community, string oid, int timeout = 5, int version = 1, string oids)
Perform an SNMP GET request.
- Parameters:
agent_host – the target SNMP host
community – the SNMP community
oid – the OID to query
timeout – maximum seconds before aborting the request
version – the SNMP version to use
oids – additional OIDs to query
- Returns:
a table with the results on success, nil otherwise
-
function snmpgetnext(string agent_host, string community, string oid, int timeout = 5, int version = 1, string oids)
Perform an SNMP GETNEXT request.
- Parameters:
agent_host – the target SNMP host
community – the SNMP community
oid – the OID to query
timeout – maximum seconds before aborting the request
version – the SNMP version to use
oids – additional OIDs to query
- Returns:
a table with the results on success, nil otherwise
-
function tcpProbe(string server_ip, int server_port = 5, int timeout = 3)
Send a TCP probe and get the returned banner string.
- Parameters:
server_ip – the server IP address
server_port – the TCP service port
timeout – maximum timeout for the operation
- Returns:
the banner string on success, nil otherwise.
-
function isIPv6(string addr)
Check if the given address is an IPv6 address.
- Parameters:
addr – the IP address to check
- Returns:
true if the addtess is a valid IPv6 address, false otherwise.