Ò»¸ö¼òµ¥µÄlinuxÏÂÍøÂç³ÌÐòʵÀý£ÍøÂç±à³ÌÈëÃÅ
ϵͳ£ºfedora core 5
·þÎñÆ÷¶Ë³ÌÐò£º
/* server */
#include <stdio.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <netdb.h>
#include <unistd.h>
#include <string.h>
#include <arpa/inet.h>
#define PORT 8848
#define BACKLOG 1
main()
{
int listenfd,connectfd;
struct sockaddr_in server;
struct sockaddr_in client;
int sin_size;
if (( listenfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
perror("Creating socket failed.");
return 0;
}
int opt = SO_REUSEADDR;
setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));
bzero(&server,sizeof(server));
server.sin_family = AF_INET;
server.sin_port = htons(PORT);
server.sin_addr.s_addr = htonl(INADDR_ANY);
printf("binding... ");
if(bind(listenfd, (struct sockaddr *)&server, sizeof(struct sockaddr)) == -1) {
perror("Bind error");
return 0;
}
printf("listen... ");
if(listen(listenfd,BACKLOG) == -1){
perror("listen()
Ïà¹ØÎĵµ£º
linux²Ù×÷ϵͳÏÂsystem () º¯ÊýÏê½â
¡¡¡¡£¨Ö´ÐÐshell ÃüÁ
¡¡¡¡Ïà¹Øº¯Êý
¡¡¡¡fork£¬execve£¬waitpid£¬popen
¡¡¡¡±íÍ·Îļþ
¡¡¡¡££include<stdlib.h>
¡¡¡¡¶¨Ò庯Êý
¡¡¡¡int system(const char * string);
¡¡¡¡º¯Êý˵Ã÷
¡¡¡¡system()»áµ÷ÓÃfork()²úÉú×Ó½ø³Ì£¬ÓÉ×Ó½ø³ÌÀ´µ÷ÓÃ/bin/sh-c stringÀ´Ö´ÐвÎÊýstring ......
±¾ÎÄÊǽ¨Á¢ÔÚÇ°ÃæµÄ¿ª·¢»·¾³ÒѾ³É¹¦½¨Á¢µÄ»ù´¡Ö®Éϵġ£Èç¹ûûÓн¨Á¢ºÃ£¬Çë²ÎÕÕ¡¶ Linux Çý¶¯¿ª·¢âÒ¶¡½âÅ£Ö®Ò» —— ¿ª·¢»·¾³µÄ½¨Á¢¡·¡£
ÒѾÓкܶàÎĵµ½²ÊöÄ£¿é±à³Ì£¬¸öÈ˾õµÃ¡¶ The Linux kernel module programming guide ¡·ÊÇ×îÏ꾡µÄ¡£±¾ÎIJ»ÔÙÁ¢×ãÓÚ´ÓÀíÂÛÉÏÈ¥²ûÊöÄ£¿é±à³ÌµÄÏà¹Ø֪ʶ£¬¶ø×ÅÖØ´Óʵ¼ùµÄ» ......
Linux ½ø³Ì¼äͨÐÅѧϰ
1.Linux ¼ä½ø³ÌͨÐŵķÖÀà
1. ¹ÜµÀͨÐÅ£¨pipe£©ºÍÃü ......
Ò».Ô¤·À
1.sXid http://os.51cto.com/art/200907/134874.htm
ÏÂÔصØÖ·:http://freshmeat.net/projects/sxid/
2. LSAT
ÏÂÔصØÖ·:http://usat.sourceforge.net/
3.portsentry
ÏÂÔصØÖ·:http://sourceforge.net/projects/sentrytools/
4. fail2ban
http://www.fail2ban.org/
5.lids
http://www.lids.org/
¶þ ......