linuxÏÂÀûÓÃPF_PACKETÐÒé×å²¶°ü·½·¨
ÏÈ
·ÅÒ»¶ÎʾÀý³ÌÐò£¬Õâ¶Î³ÌÐòÎÒÔÚRH9ºÍAS4ϱàÒëͨ¹ý£¬³ÌÐò¹¦ÄܾÍÊÇÓôÓ2.2Äں˼ÓÈëµÄPF_PACKETÐÒé×åÀ´½øÐеײãÊý¾Ý°ü²¶»ñ²¢ÏÔʾ¡£
PF_PACKETÐÒé×åÊÇÓëϵͳTCP/IPÐÒéÕ»²¢ÐеÄͬ¼¶±ðÄ£¿é£¬¼´´ÓPF_PACKETÐÒé×åµÃµ½µÄÊý¾Ý°üÊÇûÓо¹ýϵͳTCP/IPÐÒéÕ»´¦Àí
µÄ¡£¶øÇÒ£¬Í¨¹ýÉèÖûìÔÓģʽ£¬¿ÉÒÔºÜÈÝÒ×µÄʵÏÖsniffer¡£
#include<errno.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<sys/socket.h>
#include<fcntl.h>
#include<netpacket/packet.h>
#include<net/if.h>
#include<net/if_arp.h>
#include<netinet/in.h>
#include<netinet/ip.h>
#include<linux/if_ether.h>
#include<arpa/inet.h>
#include<sys/ioctl.h>
#include<unistd.h>
#define RED "\E[31m\E[1m"
#define GREEN "\E[32m\E[1m"
#define YELLOW "\E[33m\E[1m"
#define BLUE "\E[34m\E[1m"
#define NORMAL "\E[m"
int Get_IfaceIndex(int fd, const char* interfaceName)
{
struct ifreq ifr;
if (interfaceName == NULL)
{
return -1;
}
memset(&ifr, 0, sizeof(ifr));
strcpy(ifr.ifr_name, interfaceName);
if (ioctl(fd, SIOCGIFINDEX, &ifr) == -1)
{
printf("RED ioctl error\n");
return -1;
}
return ifr.ifr_ifindex;
}
int set_Iface_promisc(int fd, int dev_id)
{
struct packet_mreq mr;
memset(&mr,0,sizeof(mr));
mr.mr_ifindex = dev_id;
mr.mr_type = PACKET_MR_PROMISC;
if(setsockopt(fd, SOL_PACKET, PACKET_ADD_MEMBERSHIP,&mr,sizeof(mr))==-1)
{
fprintf(stderr,"GREEN set promisc failed! \n");
return -1;
}
return 0;
}
void usage(char *exename)
{
fprintf(stderr,RED"%s <interface> <packets num to capture>\n"NORMAL, exename);
}
int main(int argc, char **argv)
{
int listen_fd;
int ipak=0,maxk=0;
char buffer
[8192];
int frmlen;
struct sock
Ïà¹ØÎĵµ£º
LinuxÏÂHTTP·þÎñÆ÷µÄ´î½¨
Linux ϰ²×°Tomcat 6µÄ²½ÖèÈçÏ¡£
£¨1£©µ½apacheÍøÕ¾ÏÂÔØTomcatÎļþ apache-tomcat-6.0.18.tar.gz¡£
£¨2£©ÔÚ/usrĿ¼Ï½¨Á¢TomcatĿ¼¡£
£¨3£©½âѹapache-tomcat-6.0.18.tar.gz Îļþ¡£
#tar -xvzf apache-tomcat-6.0.18.tar.gz
£¨4£©ÐÞ¸Äetc/profile Îļþ£¬ÔÚ×îºó¼ÓÈëÈçÏ´úÂë¡£
exp ......
±¾ÎÄÀ´×ÔÍøÂç,°æÈ¨¹éÔ×÷ÕßËùÓС£Èç¹ûÄúÈÏΪ±¾ÆªÎÄÕÂÇÖ·¸ÁËÄúµÄȨÀû,ÇëÔÚµÚһʱ¼äÁôÑÔ¸ø±¾Õ¾,±¾Õ¾½«»á¼°Ê±É¾³ý¡£
¡¡¡¡LinuxÊÇÒ»Ì×Ãâ·ÑʹÓúÍ×ÔÓÉ´«²¥µÄÀàUNIX²Ù×÷ϵͳ£¬Ö÷ÒªÓÃÓÚ»ùÓÚIntel x86ϵÁÐCPUµÄ¼ÆËã»úÉÏ¡£LinuxϵͳÊÇÓÉÈ«ÊÀ½ç¸÷µØµÄ³ÉǧÉÏÍòµÄ³ÌÐòÔ±Éè¼ÆºÍʵÏֵ쬯äÄ¿µÄÊǽ¨Á¢²»ÊÜÈκÎÉÌÆ·»¯Èí¼þµÄ°æÈ¨ËùÖÆÔ ......
(ËÄ)¡¡ÍøÂçÆª¡¡
¡¡¡¡LinuxµÄ×éÍøÄÜÁ¦·Ç³£Ç¿´ó£¬ËüµÄTCP/IP´úÂëÊÇ×î¸ß¼¶µÄ¡£LinuxÌṩÁ˶ÔÓÚµ±Ç°µÄTCP/IPÐÒéµÄÍêȫ֧³Ö£¬²¢ÇÒ°üÀ¨Á˶ÔÏÂÒ»´úInternet¡£ÐÒéIpv6µÄÖ§³Ö¡£LinuxÄں˻¹°üÀ¨ÁËIP·À»ðǽ´úÂë¡¢IP·Àα¡¢IP·þÎñÖÊÁ¿¿ØÖƼ°Ðí¶à°²È«ÌØÐÔ¡£ÕâÐ©ÌØÐÔ¿ÉÒÔºÍÏñCiscoÕâÑùµÄ¹«Ë¾ÌṩµÄ¸ß¶Ë·ÓÉÉ豸µÄÌØÐÔÏàæÇÃÀ¡£´ËÍ ......
LinuxµÄÎļþ²Ù×÷APIÉæ¼°µ½´´½¨¡¢´ò¿ª¡¢¶ÁдºÍ¹Ø±ÕÎļþ¡£
1.linux API
¡¡¡¡´´½¨
int creat(const char *filename, mode_t mode);
¡¡¡¡²ÎÊýmodeÖ¸¶¨Ð½¨ÎļþµÄ´æÈ¡È¨ÏÞ£¬ËüͬumaskÒ»Æð¾ö¶¨ÎļþµÄ×îÖÕȨÏÞ£¨mode&umask£©£¬ÆäÖÐumask´ú±íÁËÎļþÔÚ´´½¨Ê±ÐèҪȥµôµÄһЩ´æÈ¡È¨ÏÞ¡£umask¿Éͨ¹ýϵͳµ÷ÓÃumask()À´¸ ......