Skip to content

Latest commit

 

History

History
32 lines (31 loc) · 1.17 KB

README.md

File metadata and controls

32 lines (31 loc) · 1.17 KB

STUN External IP

##Description A lightweight STUN client written in C to get the external IPv4 address. ##Usage The API provided in this library is pretty straightforward.

int getPublicIPAddress(struct STUNServer server, char* address);

This function requires a valid STUN server and a non-null buffer to store the external IP address. It returns 0 on success or a negative number on error.

struct STUNServer
{
    char* address;
    
    unsigned short port;
};

A STUNServer contains the address and port number. address can be either an IP address or a domain name. Check the example code in main.c. ####Notes Not all STUN servers use the XOR mapped address. So this function will return -5 if it cannot find the XOR mapped address in the response. ##Compilation cd to the STUNExternalIP directory and type make to compile. Type make clean to clean up. ##Tested Environments I have tested the code on macOS Sierra, Ubuntu 14.04 LTS and OpenSUSE. Windows is probably not supported now because of the headers for socket. ##Reference Check the RFC5386 for further information. ##License MIT License