Перейти к содержанию
    

Уважаемые коллеги!

 

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

 

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

 

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

 

Заранее спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если для sim300 то указывается или ip адрес или domain.

Наберите at+cipstart=? и посмотрите как у вас.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конечно же можно установить 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"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конечно же можно установить 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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сам с такой ошибкой не сталкивался, но могу предположить что ваш модем не получает автоматически адреса DNS-серверов от оператора связи. Проверить это можно командой AT+CDNSCFG? после запуска GPRS-сессии. Посмотрите какие адреса DNS-серверов у вас прописаны.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

пропишите DNS явно... например 193ю26ю13ю18

бывает. что на автомате неработает...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сам с такой ошибкой не сталкивался, но могу предположить что ваш модем не получает автоматически адреса DNS-серверов от оператора связи. Проверить это можно командой AT+CDNSCFG? после запуска GPRS-сессии. Посмотрите какие адреса DNS-серверов у вас прописаны.

 

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

 

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

 

AT+CDNSGIP="smtp.yandex.ru"
OK
ERROR: 6
STATE: IP STATUS

Изменено пользователем decadent

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

decadent, подправьте синтаксис команды - AT+CDNSCFG? - и покажите результат.
Изменено пользователем vladimir_k

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

decadent, подправьте синтаксис команды - AT+CDNSCFG? - и покажите результат.

 

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

 

AT+CDNSCFG=?
OK

 

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

 

AT+CDNSCFG?
ERROR

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Видимо у вас прошивка модема не самая новая, поэтому и команда 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, прежде чем прописывать их в модем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Видимо у вас прошивка модема не самая новая, поэтому и команда AT+CDNSCFG? не поддерживается.

 

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

 

PrimaryDns:192.168.168.70

SecondaryDns:212.120.166.238

OK

 

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

 

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

 

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

 

Спасибо, прямо сейчас и попробую. Хотя не хотелось бы зависеть от DNS серверов, которые в любой момент могут стать недоступными.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какие IP-адреса DNS-серверов прописывать - можно поискать в интернете бесплатные публичные DNS-сервера

 

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

 

А наиболее рационально, думаю, сменить прошивку на более новую. Посоветуйте, пожалуйста, где можно об этом почитать.

Изменено пользователем decadent

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А наиболее рационально, думаю, сменить прошивку на более новую. Посоветуйте, пожалуйста, где можно об этом почитать.

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

Revision:1008B14SIM300D32_SST34HF3284

т.е. перед нами прошивка для модуля SIM300D с памятью типа SST версии 14

 

Насчёт обновления прошивки достаточно информации на форуме, можно отсюда начать:

http://electronix.ru/forum/index.php?showt...st&p=343675

 

Не факт, что обновление прошивки решит вашу проблему с DNS-серверами (скорее всего это от оператора зависит), но лишним конечно же не будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не факт, что обновление прошивки решит вашу проблему с DNS-серверами (скорее всего это от оператора зависит), но лишним конечно же не будет.

 

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

 

 

at+gmr
Revision:1008B15SIM300M32_SST34HF3284

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...