The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Написание IP scanera под UNIX"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Написание IP scanera под UNIX"
Сообщение от trigear emailИскать по авторуВ закладки on 06-Мрт-02, 20:39  (MSK)
Привет.. я токо начал програмить на си++ по никсы.. и мне нужна помощь. Не знаю, как сделать цикл перебирания ай пи адресов в сокетах... Ай пи адрес вводиться вида 1.2.3.4 мне надо что бы юзер вводил начальный айпи xxx.xxx.xxx.1 и конечный xxx.xxx.xxx.255 как сделать чтобы ай пи перебирались?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "тебе повезло, меня как раз седня такую прогу просили сделать"
Сообщение от Архимед Искать по авторуВ закладки on 11-Мрт-02, 09:44  (MSK)

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

unsigned GetNumber(const char* &p)
{
    static const char digits[]="0123456789";
    unsigned n=0;
    if(!strchr(digits,*p))return unsigned(-1);
    const char* x;
    while(*p && (x=strchr(digits,*p))){
(n*=10)+=(x-digits);
++p;
if(n>255)return (unsigned)-1;
    };
    return n;
}

unsigned GetIP(const char* p)
{
    unsigned x,n=0;
    for(int i=0;i<4;++i){
if(i&&*(p++)!='.'||(x=GetNumber(p))==-1)return 0;
(n<<=8)|=x;
    };
    return n;
}


int main(int argc,char** argv)
{
    unsigned from,to;
    char s[256];
    if(argc<3||!(from=GetIP(argv[1]))||!(to=GetIP(argv[2]))){
cerr<<"USAGE: "<<argv[0]<<" xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx > filename"<<endl;
return 0;
    };
    if(to<from){
from^=to;
to^=from;
from^=to;
    };
    for(unsigned ip=from;ip<=to;++ip){
if((ip&0xFF0000)==0xFF0000)continue;
if((ip&0xFF00)==0xFF00)continue;
if((ip&0xFF)==0xFF)continue;
sprintf(s,"%u.%u.%u.%u\n",ip>>24,(ip>>16)%6,(ip>>8)%6,ip%6);
write(STDOUT_FILENO,s,strlen(s));
    };
    return 0;
}

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Слушай может я полный дурак... Но где сокет???"
Сообщение от trigear emailИскать по авторуВ закладки on 11-Мрт-02, 09:51  (MSK)
Слушай может я полный дурак... Но где сокет???
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: Слушай может я полный дурак... Но где сокет???"
Сообщение от Архимед Искать по авторуВ закладки on 11-Мрт-02, 10:03  (MSK)
>Слушай может я полный дурак... Но
>где сокет???

ну а тебе на блюдечке сразу софтинку чтоли :)

"Не знаю, как сделать цикл перебирания ай пи адресов в сокетах"

ну вот типа цикл перебирания ипов.
берешь и пробуешь конекаться к каждому.
советую использовать select и конекаться сразу к сотням параллельно и тнебольшой таймаут

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: Слушай может я полный дурак... Но где сокет???"
Сообщение от trigear emailИскать по авторуВ закладки on 11-Мрт-02, 10:28  (MSK)
Ой большое спасибо :)) Пойду цикл разбирать :))
  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру