linux sock_rawÔʼÌ×½Ó×Ö±à³Ì
sock_rawÔʼÌ×½Ó×Ö±à³Ì¿ÉÒÔ½ÓÊÕµ½±¾»úÍø¿¨ÉϵÄÊý¾ÝÖ¡»òÕßÊý¾Ý°ü,¶ÔÓë¼àÌýÍøÂçµÄÁ÷Á¿ºÍ·ÖÎöÊǺÜÓÐ×÷ÓõÄ.Ò»¹²¿ÉÒÔÓÐ3ÖÖ·½Ê½´´½¨ÕâÖÖsocket
1.socket(AF_INET, SOCK_RAW, IPPROTO_TCP|IPPROTO_UDP|IPPROTO_ICMP)·¢ËͽÓÊÕipÊý¾Ý°ü
2.socket(PF_PACKET, SOCK_RAW, htons(ETH_P_IP|ETH_P_ARP|ETH_P_ALL))·¢ËͽÓÊÕÒÔÌ«ÍøÊý¾ÝÖ¡
3.socket(AF_INET, SOCK_PACKET, htons(ETH_P_IP|ETH_P_ARP|ETH_P_ALL))¹ýʱÁË,²»ÒªÓð¡
Àí½âÒ»ÏÂSOCK_RAWµÄÔÀí, ±ÈÈçÍø¿¨ÊÕµ½ÁËÒ»¸ö 14+20+8+100+4 µÄudpµÄÒÔÌ«ÍøÊý¾ÝÖ¡.
Ê×ÏÈ,Íø¿¨¶Ô¸ÃÊý¾ÝÖ¡½øÐÐÓ²¹ýÂË(¸ù¾ÝÍø¿¨µÄģʽ²»Í¬»áÓв»Í¬µÄ¶¯×÷,Èç¹ûÉèÖÃÁËpromisc»ìÔÓģʽµÄ»°,Ôò²»×öÈκιýÂËÖ±½Ó½»¸øÏÂÒ»²ãÊäÈëÀý³Ì,·ñÔò·Ç±¾»úmac»òÕ߹㲥mac»á±»Ö±½Ó¶ªÆú).°´ÕÕÉÏÃæµÄÀý×Ó,Èç¹û³É¹¦µÄ»°,»á½øÈëipÊäÈëÀý³Ì.µ«ÊÇÔÚ½øÈëipÊäÈëÀý³Ì֮ǰ,ϵͳ»á¼ì²éϵͳÖÐÊÇ·ñÓÐͨ¹ýsocket(AF_PACKET, SOCK_RAW, ..)´´½¨µÄÌ×½Ó×Ö.Èç¹ûÓеϰ²¢ÇÒÐÒéÏà·û,ÔÚÕâ¸öÀý×ÓÖоÍÊÇÐèÒªETH_P_IP»òÕßETH_P_ALLÀàÐÍ.ϵͳ¾Í¸øÃ¿¸öÕâÑùµÄsocket½ÓÊÕ»º³åÇø·¢ËÍÒ»¸öÊý¾ÝÖ¡¿½±´.È»ºó½øÈëÏÂÒ»²½.
Æä´Î,½øÈëÁËipÊäÈëÀý³Ì(ip²ã»á¶Ô¸ÃÊý¾Ý°ü½øÐÐÈí¹ýÂË,¾ÍÊǼì²éУÑé»òÕß¶ªÆú·Ç±¾»úip»òÕ߹㲥ipµÄÊý¾Ý°üµÈ,¾ßÌåÒª²Î¿¼Ô´´úÂë),Àý×ÓÖоÍÊÇÈç¹û³É¹¦µÄ»°»á½øÈëudpÊäÈëÀý³Ì.µ«ÊÇÔÚ½»¸øudpÊäÈëÀý³Ì֮ǰ,ϵͳ»á¼ì²éϵͳÖÐÊÇ·ñÓÐͨ¹ýsocket(AF_INET, SOCK_RAW, ..)´´½¨µÄÌ×½Ó×Ö.Èç¹ûÓеϰ²¢ÇÒÐÒéÏà·û,ÔÚÕâ¸öÀý×ÓÖоÍÊÇÐèÒªIPPROTO_UDPÀàÐÍ.ϵͳ¾Í¸øÃ¿¸öÕâÑùµÄsocket½ÓÊÕ»º³åÇø·¢ËÍÒ»¸öÊý¾ÝÖ¡¿½±´.È»ºó½øÈëÏÂÒ»²½.
×îºó,½øÈëudpÊäÈëÀý³Ì ...
ps:Èç¹ûУÑéºÍ³ö´íµÄ»°,Äں˻áÖ±½Ó¶ªÆú¸ÃÊý¾Ý°üµÄ.¶ø²»»á¿½±´¸øsock_rawµÄÌ×½Ó×Ö,ÒòΪУÑéºÍ¶¼³ö´íÁË,Êý¾Ý¿Ï¶¨ÓÐÎÊÌâµÄ°üÀ¨ËùÓÐÐÅÏ¢¶¼Ã»ÓÐÒâÒåÁË.
½øÒ»²½·ÖÎöËûÃǵÄÄÜÁ¦.
1. socket(AF_INET, SOCK_RAW, IPPROTO_UDP);
ÄÜ:¸ÃÌ×½Ó×Ö¿ÉÒÔ½ÓÊÕÐÒéÀàÐÍΪ(tcp udp icmpµÈ)·¢Íù±¾»úµÄipÊý¾Ý°ü,´ÓÉÏÃæ¿´µÄ¾ÍÊÇ20+8+100.
²»ÄÜ:²»ÄÜÊÕµ½·Ç·¢Íù±¾µØipµÄÊý¾Ý°ü(ipÈí¹ýÂ˻ᶪÆúÕâЩ²»ÊÇ·¢Íù±¾»úipµÄÊý¾Ý°ü).
²»ÄÜ:²»ÄÜÊÕµ½´Ó±¾»ú·¢ËͳöÈ¥µÄÊý¾Ý°ü.
·¢Ë͵ϰÐèÒª×Ô¼º×éÖ¯tcp udp icmpµÈÍ·²¿.¿ÉÒÔsetsockoptÀ´×Ô¼º°ü×°ipÍ·²¿
ÕâÖÖÌ×½Ó×ÖÓÃÀ´Ð´¸öping³ÌÐò±È½ÏÊʺÏ
2. socket(PF_PACKET, SOCK_RAW, htons(x));
Õâ¸öÌ×½Ó×ֱȽÏÇ¿´ó,´´½¨ÕâÖÖÌ
Ïà¹ØÎĵµ£º
Allocaº¯Êý£¬ÓÃÓÚÔÚÕ»ÉÏ·ÖÅäÄڴ棬
gcc
µÄ¶¯Ì¬Êý×é¾ÍÊÇͨ¹ýËüÀ´Ö§³ÖµÄ¡£
ÖжϺÍÐźŵĸÅÄîÊDz»Í¬µÄ£¬ÐźÅÊÇ·¢¸ø½ø³ÌµÄ£¬Ó²ÖжÏÊÇÄں˺ÍÓ²¼þÖ®¼ä£¬¶¼ÊÇÒì²½µÄ£¬²»¿ÉÔ¤ÖªµÄ¡£
ϵͳµ÷ÓýøÈëÄÚºËÊDz»·¢Éú½ø³ÌÇл»µÄ¡£DIRECT_IO
²»Ê¹ÓÃϵͳ
IO
»º´æ£¬»¹Òª±£Ö¤»º³åÇøÄÚ´æ²»±»
swap
£¬Õâ¸öÓÃÓÚÄÇЩÓû§²ã½øÐлº´æµÄÓ¦ÓÃ³Ì ......
1. °²×°apache2, lxr, glimpse
$ sudo apt-get install apache2
$ sudo apt-get install lxr
ÏÂÔØglimpse
°²×°glimpse:
$ ./configure
$ make
$ sudo make install
2. ÅäÖÃlxr
$ sudo vim /usr/share/lxr/http/lxr.conf
ÐÞ¸ÄΪ£ºbaseurl:http://localhost/lxr/http
&n ......
1¡¢ÖÆ×÷logoµÄ·½·¨£º
¡¡Ê×ÏÈÑ¡ÔñÒ»¸ö×Ô¼ºÏ²»¶µÄͼƬ£¬È»ºóͨ¹ýGIMPÈí¼þ½«¸ÃͼƬ±£´æÎª.png¸ñʽ£¬
¡¡±ä»»·½Ê½Õâ¸ö¾Í²»ËµÁË(very easy),±ÈÈç±£´æÎªlinuxlogo.png.
È»ºó½«¸ÃͼƬ´«Èëµ½×°ÓÐLinux PC±ÈÈ磨ubuntu£©£¬°´ÕÕÒÔÏÂ˳ÐòÄã¾Í¿ÉÒÔÖÆ×÷Ò»¸öÄãϲ»¶logo
ǰÌáÄã±ØÐë°²×°ÒÔÏµĹ¤¾ß(pngtopnm,pnmquant,pnmtoplainpnm)
$ ......
version: 1.0
date:20090721
Author£ºcrifan
Mail:green-waste(At)163.com
ÉϽӣº¡¾¼ò½é¡¿ÈçºÎ±àдlinuxÏÂnand flashÇý¶¯-1
http://green-waste.blog.163.com/blog/static/3267767820096221127554/
¡¾¶Á£¨read£©²Ù×÷¹ý³ÌÏê½â¡¿
ÒÔ×î¼òµ¥µÄread²Ù×÷ΪÀý£¬½âÊÍÈçºÎÀí½âʱÐòͼ£¬ÒÔ¼°½«Ê±Ðòͼ
ÖеÄÒªÇó£¬×ª»¯ ......
vi adduser.sh È»ºó°ÑÈçÏ´úÂëÌùÈë¡£±£´æµ½CVSROOTĿ¼Ï¡£
#!/bin/bash
#add cvs users
while [ -n "$(echo $1|grep '^_')"];
do
case $1 in
-u) param=$2
echo -e "$param:\c" >>passwd
shift ;;
-p) param=$2
echo -e `./passwdgen.pl $param`":cvsroot" >> passwd;;
*)
exit 1
esac
shift
......