Chinaunix

标题: 一段端口扫描的代码,原始套接字,怎么老是recvfrom收不到呢? [打印本页]

作者: scu_guzo    时间: 2009-11-17 18:59
标题: 一段端口扫描的代码,原始套接字,怎么老是recvfrom收不到呢?
static int FIN_scan(const char *ip_addr, const unsigned short port)
{
    struct sockaddr_in addr;
    int sockfd;
    fd_set fdset;
    struct timeval timeout;
    struct tcphdr *tcp;
    struct ip *ip;
    char buf[sizeof(struct tcphdr) + sizeof(struct ip)];
    int buflen, addrlen;

    addr.sin_family = AF_INET;
    addr.sin_port = htons(port);
    addr.sin_addr.s_addr = inet_addr("119.75.216.30");    //119.75.216.30百度


    timeout.tv_sec = TIME_OUT;
    timeout.tv_usec = 0;

    memset(buf, 0, sizeof(buf));
    sockfd = socket(AF_INET, SOCK_RAW, IPPROTO_TCP);
    ip = (struct ip *)buf;
    tcp = (struct tcphdr *)(buf + sizeof(struct ip));
    buflen = sizeof(struct tcphdr) + sizeof(struct ip);
    addrlen = sizeof(struct sockaddr_in);

    tcp->source = htons(55555);
    tcp->dest = htons(port);
    tcp->fin = 1;
    tcp->doff = 5;

    if (sendto(sockfd, buf, buflen, 0, (struct sockaddr *)&addr, addrlen)
        == buflen)
        printf("sendto successn");

    if (recvfrom(sockfd, buf, buflen, 0, (struct sockaddr *)&addr,
         &addrlen) == buflen)
        printf("recvfrom successn"); //recvfrom收不到

    return 1;
}

作者: hijohnny    时间: 2009-11-18 09:42
man sockaddr_ll
作者: scu_guzo    时间: 2009-11-18 10:57
标题: 回复 #2 hijohnny 的帖子
嗯  谢了




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2