C Useful


Network



Use Windows Network Functions (Winsock)

(It's Required To Use Network Functions On Microsoft Windows)
( MSDN Winsock )

Resolve A Hostname To IPv4

( man getaddrinfo | man inet_ntoa )

Resolve A Hostname To IPv6

( man getaddrinfo | man inet_ntop | MSDN WSAAddressToString )

Resolve A IPv4 To Hostname

( man getnameinfo | man inet_pton )

Convert Number To IPv4 (And IPv4 To Number)

(Accepted IPv4: "0.0.0.0" To "255.255.255.255")

List All Network Interfaces (And Print IP Addresses)

( man getifaddrs | man GetAdaptersAddresses )

A Basic Example To Create An UDP Connection

(Simulate Client / Server)
( man socket | man bind | man sendto | man recvfrom )

A Basic Example To Create A TCP Connection (Client / Server)

( man socket | man connect | man bind | man listen | man 2 accept | man send | man recv )

A Full Example Of A Simple Client TCP (IPv4) (With TLSv1.2)

(OpenSSL Library -> libssl Is Required)
( man SSL_CTX_new | man SSL_new | man SSL_set_fd | man SSL_read | man SSL_write... )

A Full Example Of A Simple Server TCP (IPv4) (With TLSv1.2)

(OpenSSL Library -> libssl Is Required)
( man SSL_CTX_new | man SSL_new | man SSL_set_fd | man SSL_read | man SSL_write... )

Download A HTTP File With libcurl (Resume Supported)

(cURL Library -> libcurl Is Required)
( https://curl.haxx.se/libcurl/c/ )

Calculate TCP/IP/ICMP Header Checksum



An Example To List Network Devices And Capture Network Packets (With Filter)

(Pcap Library -> libpcap Is Required)
( man pcap_findalldevs | man pcap_open_live | man pcap_next_ex | man 7 pcap-filter... )

An Example To List Network Devices And Send A RAW Packet (Here An ARP Reply) With PCAP

(Pcap Library -> libpcap Is Required)
( man pcap_findalldevs | man pcap_open_live | man pcap_sendpacket )

An Example Of 'AF_PACKET' RAW Socket (List Interfaces And Send An ARP Reply Packet)

(ONLY Works On Linux)
( man socket | man sendto | man recvfrom | man getifaddrs | man ioctl )

An Example Of ICMP RAW Socket (Ping)

( man socket | man setsockopt | man sendto | man recvfrom | MSDN SIO_RCVALL )

An Example Of TCP RAW Socket (Send TCP SYN Packets And Receive SYN-ACK, Like A Port Scanner)

(ONLY Works On Linux)
( man socket | man sendto | man recvfrom )