Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Pumych
0 / 0 / 0
Регистрация: 12.08.2010
Сообщений: 20
#1

Обработка адреса DNS и IP из коммандной строки - C++

24.08.2010, 16:55. Просмотров 873. Ответов 6
Метки нет (Все метки)

Имеется ли функция которая исходя из полученного аргумента будет использовать подходяшую функцию?
Т.е. если argv[1] == "localhost" то будет использоваться:
C++
1
clientserver.sin_addr.s_addr = inet_addr(argv[1]);
а если argv[1] == "127.0.0.1" то:
C++
1
clientserver.sin_addr.s_addr = htons(atoi(argv[1]));
И если нет то каким образом лучше проверить аргумент, по последнему знаку? Т.е. если домейн то последняя будет знаковой а если IP то числовой или как то по другому?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2010, 16:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обработка адреса DNS и IP из коммандной строки (C++):

Обработка параметров коммандной строки - C++
как обработать несколько параметров для опции? getopt вроде только один берет. Вот что хочу: move_user --user user_name --nodes node44...

Идеи насчет коммандной строки - C++
Друзья, нужна искренне Ваша помощь. Язык ANSI C Есть структура Flags, в которую я буду сохранять все значения с коммандной строки...

Как считать параметр коммандной строки - C++
Я понимаю, что его можно считать из заголовка экзешника, но существует ли более простой способ, а то не охото байтики перебирать. ...

Как обработать аргументы коммандной строки? - C++
Я делаю вот так if (strcmp(argv,"/?")==0) { puts("This my help"); } if (strcmp(argv,"/i")==0) { ...

Ошибка программы при запуске .exe файла из коммандной строки - C++
Доброе Время ! Собсно некорректно работает .exe файл проекта Visual Studio из коммандной строки windows. (Нужно с целью использования...

Обработка аргументов коммандной строки - C Linux
Подскажите какие способы существуют обработки аргументов коммандной строки на Си, нужно что бы быстро обрабатывались аргументы корректно...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.08.2010, 17:04 #2
C
1
2
3
char *buf1 = "localhost", *buf2 = "127.0.0.1" ;
if(strcmp(argv[1], buf1) == 0) clientserver.sin_addr.s_addr = inet_addr(argv[1]);
if(strcmp(argv[1], buf2) == 0) clientserver.sin_addr.s_addr = htons(atoi(argv[1]));
думаю как-то так)
0
Pumych
0 / 0 / 0
Регистрация: 12.08.2010
Сообщений: 20
24.08.2010, 17:06  [ТС] #3
А если я не знаю какой именно адрес будет введен, может localhost а может www.google.ru ?
0
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.08.2010, 17:10 #4
C
1
2
3
4
char buf1[80] *buf2 = "127.0.0.1";
scanf("%s", buf1);
if(strcmp(argv[1], buf1) == 0) clientserver.sin_addr.s_addr = inet_addr(argv[1]);
if(strcmp(argv[1], buf2) == 0) clientserver.sin_addr.s_addr = htons(atoi(argv[1]));
только для strcmp подключите string.h
0
Pumych
0 / 0 / 0
Регистрация: 12.08.2010
Сообщений: 20
24.08.2010, 17:18  [ТС] #5
Программа получает от пользователя через аргумент (допустим argv[1]) или DNS или IP (не только localhost и 127.0.0.1 а любой адрес в первом или во втором виде), заранее мы не знаем является ли он стрингом или IP адресом. Как тогда, нет ли уже готовой функции?
0
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
24.08.2010, 19:15 #6
Пытаемся распознать строку как IP-адрес
Если удалось - значит это IP-адрес и делаем одни действия

Иначе считаем что строка - это DNS-name и делаем другие действия

Еще вариант - IP-адрес может быть в IPv4 или IPv6
1
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
25.08.2010, 03:37 #7
Pumych, обрабатывай ip, как domain (то есть как будто ты всегда передаешь localhost или server.com)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2010, 03:37
Привет! Вот еще темы с ответами:

Аргументы коммандной строки - C (СИ)
Моему приложению должны как параметр передать имя файла, но в нем могут быть пробелы например такое имя "c:\data\my data\file 1.txt" ...

Подсоединение сетевых дисков с коммандной строки - Windows
Как (зная пароль на учётную запись) приконнектить сетевой диск с другой машины? Я помню синтаксис приблизительно такой NET USE X:...

Запуск приложения с некоторыми атрибутами из коммандной строки - Visual Basic .NET
Собственно сабж. Как это можно осуществить: строка должна иметь вид "суперприложение.exe somefile.file somefile.file" После запуска которой...

Server 2003 Как изменить DNS-адреса? - Windows Server
Добрый день ребят windows 2003 у меня на сервере настроена доменная сеть. Так вот я сменил хостинг домена а теперь не могу изменить dns...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.08.2010, 03:37
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru