Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AT+CIPSTART и имя домена
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
decadent
Уважаемые коллеги!

Как известно, установить TCP соединение можно, зная IP адрес:

at+cipstart="TCP","хх.хх.хх.хх","хх"

Но как быть, если этот адрес меняется? Например, я отправляю почту через SMTP-сервер того же яндекса, а у него IP адресов несколько. Имеется ли возможность как-то получить этот адрес по имени домена посредством АТ-команд? Или же, может быть, имеется аналог at+cipstart, позволяющий указывать домен? Хотя в мануале по командам модема я такого аналога не нашел.

Заранее спасибо.
Nixon
Если для sim300 то указывается или ip адрес или domain.
Наберите at+cipstart=? и посмотрите как у вас.
vladimir_k
Конечно же можно установить TCP-соединение, указав доменное имя, коллега (применительно к модему SIM300). За это отвечает команда AT+CDNSORIP, параметр которой и задаёт что мы будем указывать в качестве адреса удалённого узла в последующей команде AT+CIPSTART.

Пример:

AT+CDNSORIP=1
AT+CIPSTART="TCP","smtp.yandex.ru","25"


или

AT+CDNSORIP=0
AT+CIPSTART="TCP","213.180.204.38","25"
decadent
Цитата(vladimir_k @ Aug 26 2009, 17:00) *
Конечно же можно установить TCP-соединение, указав доменное имя.

Пример:

AT+CDNSORIP=1
AT+CIPSTART="TCP","smtp.yandex.ru","25"


Большое спасибо, модуль действительно SIM300 -- это я забыл указать. Но -- хотя на AT+CDNSORIP=1 модуль и отвечает ОК, -- однако далее имеем вот что:

Код
AT+CIPSTART="TCP","smtp.yandex.ru","25"
OK
ERROR: 6
STATE: IP STATUS


И на все дальнейшие попытки что-либо отправить серверу получаю ERROR.
vladimir_k
Сам с такой ошибкой не сталкивался, но могу предположить что ваш модем не получает автоматически адреса DNS-серверов от оператора связи. Проверить это можно командой AT+CDNSCFG? после запуска GPRS-сессии. Посмотрите какие адреса DNS-серверов у вас прописаны.
av-master
пропишите DNS явно... например 193ю26ю13ю18
бывает. что на автомате неработает...
decadent
Цитата(vladimir_k @ Aug 27 2009, 09:38) *
Сам с такой ошибкой не сталкивался, но могу предположить что ваш модем не получает автоматически адреса DNS-серверов от оператора связи. Проверить это можно командой AT+CDNSCFG? после запуска GPRS-сессии. Посмотрите какие адреса DNS-серверов у вас прописаны.


На AT+CDNSCFG=? мне отвечают ОК -- то есть DNS серверы, похоже, настроены. Но -- все равно не получается подключится через доменное имя. А явно прописать сервер -- это же надо его IP знать. Я работаю через российского оператора Мегафон, на сайте у них DNS не нашел.

Upd: Есть еще команда запроса IP адреса, но на нее тоже получаю ошибку:

Код
AT+CDNSGIP="smtp.yandex.ru"
OK
ERROR: 6
STATE: IP STATUS
vladimir_k
decadent, подправьте синтаксис команды - AT+CDNSCFG? - и покажите результат.
decadent
Цитата(vladimir_k @ Aug 27 2009, 11:07) *
decadent, подправьте синтаксис команды - AT+CDNSCFG? - и покажите результат.


Дело в том, что мой вариант правильный -- и в SIM300_ATC_V2.00 он указан как раз так: AT+CDNSCFG=?. На него я получаю ответ:

Код
AT+CDNSCFG=?
OK


А на вариант без знака равенства:

Код
AT+CDNSCFG?
ERROR


Если это поможет, могу выложить весь лог общения с модемом -- он базируется на способе, примененном Виталием Якименко для отправки почты через SIM300.
vladimir_k
Видимо у вас прошивка модема не самая новая, поэтому и команда AT+CDNSCFG? не поддерживается.

Вот, к примеру, какой ответ возвращается на эту команду на рабочей системе SIM300DZ с 14 прошивкой:

PrimaryDns:192.168.168.70
SecondaryDns:212.120.166.238
OK


Скорее всего у вас не прописаны DNS-сервера, поэтому и возникает ошибка "ERROR: 6", попробуйте вручную прописать DNS-сервера с помощью команды AT+CDNSCFG после запуска GPRS-сессии.

Какие IP-адреса DNS-серверов прописывать - можно поискать в интернете бесплатные публичные DNS-сервера, например здесь: http://pereblog.ru/2008/12/public-dns-servers/. Проверьте вначале доступность этих серверов утилитой ping, прежде чем прописывать их в модем.
decadent
Цитата(vladimir_k @ Aug 27 2009, 11:34) *
Видимо у вас прошивка модема не самая новая, поэтому и команда AT+CDNSCFG? не поддерживается.

Вот, к примеру, какой ответ возвращается на эту команду на рабочей системе SIM300DZ с 14 прошивкой:

PrimaryDns:192.168.168.70
SecondaryDns:212.120.166.238
OK


Хм.. А как посмотреть версию прошивки? at+cgmr выдает какую-то длинную строку, из которой сложно что-то вычленить. Но я попробовал с двумя моделями модемов: Novacom GNS-30 CRA и Aeronet AC -- история та же.

Цитата(vladimir_k @ Aug 27 2009, 11:34) *
Скорее всего у вас не прописаны DNS-сервера, поэтому и возникает ошибка "ERROR: 6", попробуйте вручную прописать DNS-сервера с помощью команды AT+CDNSCFG после запуска GPRS-сессии.

Какие IP-адреса DNS-серверов прописывать - можно поискать в интернете бесплатные публичные DNS-сервера, например здесь: http://pereblog.ru/2008/12/public-dns-servers/. Проверьте вначале доступность этих серверов утилитой ping, прежде чем прописывать их в модем.


Спасибо, прямо сейчас и попробую. Хотя не хотелось бы зависеть от DNS серверов, которые в любой момент могут стать недоступными.
av-master
которые в любой момент могут стать недоступными. - пропишите десяток (не в модулье а в проге. пусть подставляет...
decadent
Цитата(vladimir_k @ Aug 27 2009, 11:34) *
Какие IP-адреса DNS-серверов прописывать - можно поискать в интернете бесплатные публичные DNS-сервера


Большое спасибо, испльзование публичного DNS сервера помогло - теперь все работает. Насчет прописывания десятка -- надо же как-то определять их доступность. Разве что пинговать перед подстановкой в команду AT+CDNSCFG...

А наиболее рационально, думаю, сменить прошивку на более новую. Посоветуйте, пожалуйста, где можно об этом почитать.
vladimir_k
Цитата(decadent @ Aug 27 2009, 14:27) *
А наиболее рационально, думаю, сменить прошивку на более новую. Посоветуйте, пожалуйста, где можно об этом почитать.

Версию прошивки можно узнать командой AT+GMR, результат команды выглядит так:
Revision:1008B14SIM300D32_SST34HF3284
т.е. перед нами прошивка для модуля SIM300D с памятью типа SST версии 14

Насчёт обновления прошивки достаточно информации на форуме, можно отсюда начать:
http://electronix.ru/forum/index.php?showt...st&p=343675

Не факт, что обновление прошивки решит вашу проблему с DNS-серверами (скорее всего это от оператора зависит), но лишним конечно же не будет.
decadent
Цитата(vladimir_k @ Aug 27 2009, 13:21) *
Не факт, что обновление прошивки решит вашу проблему с DNS-серверами (скорее всего это от оператора зависит), но лишним конечно же не будет.


Спасибо за наводку, буду изучать. А прошивка у меня, судя по выводу AT+GMR, 15 версии:


Код
at+gmr
Revision:1008B15SIM300M32_SST34HF3284


Так что проблема, скорее всего, действительно в операторе. Будем рассчитывать на работоспособность бесплатных DNS серверов.
CADiLO
1008B15SIM300M32_SST34HF3284

Для просто SIM300 с памятью SST последняя версия 20-я

в 16 сделали чтение AT+CDNSCFG?

да и вообще исправлений много было - лучше обновиться....
decadent
Цитата(CADiLO @ Aug 27 2009, 14:29) *
1008B15SIM300M32_SST34HF3284

Для просто SIM300 с памятью SST последняя версия 20-я

в 16 сделали чтение AT+CDNSCFG?

да и вообще исправлений много было - лучше обновиться....


Чтобы обновиться, нужно сначала научиться это делать smile.gif По ссылке, которую мне дал vladimir_k, вроде бы понятно расписано, буду изучать. Только вот где взять эти новые прошивки и программу SIM FUT? Для того, чтобы стать своим, у меня еще рейтинг маловат, так что к фтп доступа нет.
CADiLO
напишите мне на chip@microchip.ua
decadent
Цитата(CADiLO @ Aug 27 2009, 14:54) *
напишите мне на chip@microchip.ua


Написал, большое спасибо!
decadent
Прикладываю протокол общения с smtp-сервером яндекса. Отличия от приведенного в этой ветке:

- подключение к серверу осуществляется по доменному имени, а следовательно, используются DNS сервера;
- выполняется авторизация на smtp сервере.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.