标签归档:linux

ssh登陆以后二次验证

ssh登陆成功以后,会自动执行当前目录下的.bashrc文件。
我们可以利用这一点,在其中加入二次验证的权限程序。
比如:


echo "Password Second"
read me

if [ "$me" != "123"  ]; then
   kill -9 $$
fi

登陆成功以后,显示Password Second
然后,如果输入的不是123,将杀死当前的进程,即关闭当前的ssh连接。
安全起见,最好把这个文件保存权限为500
必要的时候用root用户修改。

小菜瞎搞HTTP–简单GET请求

//
//  main.c
//
//  Created by qixingyue on 13-7-19.
//  Copyright (c) 2013年 qixingyue. All rights reserved.
//

#include <stdio.h>
#include <unistd.h>
#include <string.h>

//socket 程序需要的头文件
#include <netinet/in.h>
#include <arpa/inet.h>

int main(int argc, const char * argv[])
{
    if(argc != 5 ) {
        printf("Error Happend. Params not enough.\n");
        return 1;
    }
    
    printf("Get FILE:%s from %s User: %s , Passowrd : %s",argv[4],argv[1],argv[2],argv[3]);
    
    int client_socket ;
    char buffer[1000];
    
    if((client_socket = socket(AF_INET, SOCK_STREAM, 0))<0) {
        printf("Socket create error . \n");
        return 1;
    }
    
    struct sockaddr_in serverAddr;
    serverAddr.sin_family = AF_INET;
    serverAddr.sin_port =  htons(80) ;
    serverAddr.sin_addr.s_addr = inet_addr(argv[1]);
    
    if(connect(client_socket, (struct sockaddr *) &serverAddr, sizeof(serverAddr)) < 0 ) {
        printf("Connect Error:\n");
        return 1;
    }
    
    
    char *first_line = "GET / HTTP/1.1\n";
    char *second_line = "Host: itianmen.com\n";
    send(client_socket, first_line,strlen(first_line),0);
    send(client_socket, second_line,strlen(second_line),0);
    send(client_socket, "\n", 1,0);
    
    while(recv(client_socket, buffer, 1000, 0) >0 ){
        printf("GET MESSAGE : %s \n",buffer);
    }
    
    close(client_socket);
    return 0;
}