今天下午看了一下 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中
#############################################################################################################################################