Glazz В Visual C++ и вправду нет byte, так что извиняюсь. Из того что есть я бы использовал unsigned __int8. А структуру можно передавать в функцию так же как и число, строчку и тп. Написал тут пример: Code: #include <iostream> using namespace std; struct ip { unsigned __int8 ip1,ip2,ip3,ip4; }; void foo(ip & tmp) // & означает передачу по ссылке { tmp.ip1 = 1; tmp.ip2 = 2; tmp.ip3 = 3; tmp.ip4 = 4; } void show_ip(ip cur) { cout << (int)cur.ip1 << "." << (int)cur.ip2 << "." << (int)cur.ip3 << "." << (int)cur.ip4; } int main() { ip my; foo(my); show_ip(my); cin.get(); return 0; }
Структура in_addr содержит поле s_addr. Этому полю можно присвоить 32х битное значение IP адреса. Для перевода адреса в целое число из строкового представления можно воспользоваться функцией inet_addr, которой в качестве аргумента передается указатель на строку содержащую IP адрес в виде четырех десятичных чисел разделенных точками. Можно, также, воспользоваться одной из следующих констант: INADDR_ANY все адреса локального хоста (0.0.0.0); INADDR_LOOPBACK адрес loopback интерфейса (127.0.0.1); INADDR_BROADCAST широковещательный адрес (255.255.255.255). Так должно работать: Code: unsigned long adr1; adr1=inet_addr("124.23.45.67");
А вот мне допустим нужно прогнать весь мой сегмент через inet_add(); ( допустим он 10.0.0.128 - 255). Это же нужно тогда как то инкрементировать ип :\ ну т.е. чтоб был inet_addr("10.0.0.130") .... inet_addr("10.0.0.145"); ... не писать же вручную так все ипы + они могут быть разными.
Glazz я бы завёл 4 числа и прибавлял как тебе нужно: Code: char buf[20]; int a, b, c, d; sprintf(buf, "%d.%d.%d.%d", a, b, c, d); собственно в buf и содержится ip адрес
храни адреса в инте, а чтоб пройтись по диапазону можно так Code: int ip = 2130706433; //127.0.0.1 for(i = 0; i < 100; i++) sin.sin_addr.s_addr = htonl(ip + i); на каждом шаге цикла ты будешь получать инкрементированый адрес от 127.0.0.1 до 127.0.0.100 если хочешь прибавлять во второй октет то сдвинь i на 1 байт в лево (i <= 1 и так далее
держи PHP: #include <stdio.h> #include <iostream> #include <fstream> using namespace std; int main() { char fname[] = "abc.txt"; const char delim[] = ","; char buff[100]; fstream in; in.open(fname, fstream::in); if (!in.is_open()) { cerr << "Unable to open file " << fname << endl; return 0; } char * tmp; char * val; double a, n; while(in.getline(buff, sizeof(buff))) { tmp = strtok(buff, delim); while (tmp != NULL) { tmp = strtok(NULL, delim); if (!tmp) break; if (strcmp(tmp, "A") == 0) { val = strtok(NULL, delim); if (val) a = atof(val); } else if (strcmp(tmp, "N") == 0) { val = strtok(NULL, delim); if (val) n = atof(val); tmp = NULL; } } printf("A: %.4f, N: %.4f\n", a, n); } in.close(); return 0; } текущие значения ширины и долготы хранятся в переменных a и n. Добавление в массив уже прикрутишь сам, там ничего сложного
Идея интерсная. А такой вид ип адреса ты получил из int ip = inet_addr("127.0.0.1") ; ? Похоже не из inet_addr();
спасибо , буду пробовать писать на этом. Хочу попробовать написать мини сканер фтп в сегменте + запись всех результатов в MySQL/MSSQL/PostgreeSQL и вывод всех онлайн/оффлайн на сайте через php.
Возникла проблема с сокетами для GNU/Linux , тоесть BSD Sokets Получилось написать сервер который принимает сообщение и выводит его на экран и соответственно клиент который отправляет это сообщение. Но не получается сделать так, чтобы сервер отправлял ответ например "ОК" и клиент его принимал и выводил на экран. Раньше подобное писал на перле , всё было легко и понятно по примерам из inutit.ru perl 5
Пример клиент-сервер на вики , я делаю через TCP , http://ru.wikipedia.org/wiki/Сокеты_Беркли. Много где смотрел, нигде не увидел отправку ответа на запрос, на вики в том числе
[Linker Error] undefined reference to `socket@12' что может значить эта ошибка? код: PHP: #include <winsock2.h> int main(void) { int s; s = socket( AF_INET, SOCK_STREAM, 0 ); return 0; } по всей видимости нет какой-то библиотеки - кто может подсказать, какой? компилятор MingW из wxDev-C++
Code: program rand; var x : integer; begin randomize; x:=random(15); writeln ('x=',x); end. Дадад нубство, напишите pls как это будет выглядит на C++ тока без изврата)))