linux 网络编程API(一)

今天下午看了一下 hping2的代码,总结一些网络通信的api


1. getservbyport:

#include <netdb.h>

struct servent *se;

se = getservbyport(htons(port), NULL);

#############################################################################################################################################

2.获的net interface方法(不用pcap api)

#include <sys/ioctl.h>
#include <net/if.h>

struct ifconfifc;

struct ifreqibuf[16]

ifc.ifc_len = sizeof ibuf;

ifc.ifc_buf = (caddr_t) ibuf;

fd = socket(AF_INET, SOCK_DGRAM, 0)

ioctl(fd, SIOCGIFCONF, (char*)&ifc)

#############################################################################################################################################

3. getservent

#include <netdb.h>

struct servent *se;
setservent(0);
while((se = getservent()) != NULL) {

...

}

#############################################################################################################################################

4. 不处理IP数据包header

#include <sys/types.h>

#include <sys/socket.h>

s = socket(AF_INET, SOCK_RAW, IPPROTO_RAW)

setsockopt(s, IPPROTO_IP, IP_HDRINCL, (char*)&one, sizeof(one))

IP_HDRINCL定义在/usr/include/linux/in.h中

#############################################################################################################################################








你可能感兴趣的:(linux 网络编程API(一))