AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.12.2013, 11:07   #1  
BokarevSS is offline
BokarevSS
Участник
 
63 / 12 (1) ++
Регистрация: 13.01.2009
ping
MS Axapta 3.0 sp5fp2vat

Как реализовать команду ping из аксапты. Для проверки правильно ли введен адрес сайта?
Старый 23.12.2013, 11:30   #2  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
А зачем вам ping? WinInet.internetOpenURL чем не подходит?
За это сообщение автора поблагодарили: BokarevSS (1).
Старый 23.12.2013, 11:36   #3  
BokarevSS is offline
BokarevSS
Участник
 
63 / 12 (1) ++
Регистрация: 13.01.2009
Мне необходимо проверить введеный email, и для этого я хочу хотя бы выяснить, правильно ли введен почтовик.
P. S. У меня Ax3.0
Старый 23.12.2013, 11:36   #4  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
306 / 137 (5) +++++
Регистрация: 21.04.2008
Пинг из Аксапты не вернет в Аксапту значение достучался или нет
X++:
WinAPI::shellExecute('cmd.exe', '/c ping 192.168.0.100');
Если нужно проверить лежащую на сайте xml, то
X++:
XMLDocument         xmlDoc = new XMLDocument();
if (xmlDoc.load(url))
...
Иначе действительно используйте класс WinInet (он есть в 3.0)
Программное скачивание файлов из Internet

Последний раз редактировалось Player1; 23.12.2013 в 11:40. Причина: дополнение по версии
За это сообщение автора поблагодарили: BokarevSS (1).
Старый 23.12.2013, 13:20   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Player1 Посмотреть сообщение
Пинг из Аксапты не вернет в Аксапту значение достучался или нет
Можно перенаправить выхлоп в файл (ping ..... >c:\myfile.txt
За это сообщение автора поблагодарили: BokarevSS (1).
Старый 23.12.2013, 13:31   #6  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от BokarevSS Посмотреть сообщение
Как реализовать команду ping из аксапты. Для проверки правильно ли введен адрес сайта?
Цитата:
Сообщение от BokarevSS Посмотреть сообщение
Мне необходимо проверить введеный email, и для этого я хочу хотя бы выяснить, правильно ли введен почтовик.
Объясните, пожалуйста, почему правильность ввода email нужно проверять с помощью ping'а? Ping использует протокол ICMP, предназначенный для мониторинга и управления сетью, а корректность введенного адреса email зависит скорее от протокола DNS. В рамках DNS может быть несколько записей для одного итого же имени, в т.ч. A-запись и MX-запись, причем они могут ссылаться на совершенно разные IP-адреса. В общем случае используется A-запись (в т.ч. ping использует ее), но для отправки почты нужна именно MX-запись. Если есть даже такое доменное имя (A-запись), но нет MX-записи, то почта по этому доменному имени никуда не уйдет. Если есть MX-запись и по соответствующему адресу исправно работает SMTP-сервер, то там может быть отключена отправка ICMP-пакетов вовне, иными словами, этот сервер будет принимать от вас почту, но не будет отвечать вам на ping'и.
Кроме того, даже при корректном доменном имени после @ название почтового ящика может быть задано некорректно, и тогда что толку от этих всех проверок доменного имени?

PS. Для примера посмотрите на то, что говорит nslookup (а он более уместен для проверок DNS-имен, чем ping) в случае mail.ru:
Код:
C:\>nslookup mail.ru
Name:     mail.ru
Addresses:  94.100.180.201
          217.69.139.199
          217.69.139.201
          94.100.180.199
 
C:\>nslookup -q=mx mail.ru
mail.ru MX preference = 10, mail exchanger = mxs.mail.ru
mxs.mail.ru internet address = 94.100.176.20
Адреса совершенно разные, в моем случае ping подхватывает 94.100.180.201, при том что этот адрес к именно SMTP-серверу mail.ru никак не относится.
За это сообщение автора поблагодарили: belugin (5), BokarevSS (1).
Старый 23.12.2013, 15:11   #7  
mayk is offline
mayk
Участник
Аватар для mayk
 
43 / 65 (3) ++++
Регистрация: 07.03.2008
Цитата:
Сообщение от BokarevSS Посмотреть сообщение
Мне необходимо проверить введеный email, и для этого я хочу хотя бы выяснить, правильно ли введен почтовик.
P. S. У меня Ax3.0
Для этого отправляется письмо с сообщением "Для подтверждения валидности адреса щелкните сюда". А пинговать не надо: не все сервера пропускают пинги. Например, ping microsoft.com ни к чему не приведет.

internetOpenURL тоже не поможет. Он работает с http или ftp. Почтовый сервер может стоять сам по себе.
За это сообщение автора поблагодарили: BokarevSS (1).
Старый 23.12.2013, 17:42   #8  
b_nosoff is offline
b_nosoff
Читатель
Аватар для b_nosoff
MCP
MCBMSS
 
197 / 143 (5) +++++
Регистрация: 01.12.2004
Адрес: Msk
Записей в блоге: 13
Через WinAPI можно попробовать приконнектиться к порту используя Winsock.dll
__________________
Axapta non erubescit
За это сообщение автора поблагодарили: BokarevSS (1).
Старый 23.12.2013, 18:25   #9  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
858 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
напомнило сагу о X, Y, и Z
Старый 23.12.2013, 18:29   #10  
michel1971 is offline
michel1971
Участник
 
78 / 78 (3) ++++
Регистрация: 14.01.2011
Цитата:
Сообщение от b_nosoff Посмотреть сообщение
Через WinAPI можно попробовать приконнектиться к порту используя Winsock.dll
вот тут как узнать код ошибки при подключении к базе?
есть реализация через ICMP.DLL
За это сообщение автора поблагодарили: BokarevSS (1).
Старый 26.12.2013, 13:11   #11  
virhundo is offline
virhundo
Участник
 
33 / 16 (1) ++
Регистрация: 29.03.2007
не надо никакого вывода в файл
X++:
     COM         wsh;
     str           _cmdStr;
     str         fullCommand, clearBuffCmd;
    DLL         winApiDLL              = new DLL('user32');
    DLLFunction openClipboard          = new DLLFunction(winApiDLL, 'OpenClipboard');
    DLLFunction getClipboardData       = new DLLFunction(winApiDLL, 'GetClipboardData');
    DLLFunction enumClipboardFormats   = new DLLFunction(winApiDLL, 'EnumClipboardFormats');
    DLLFunction closeClipboard         = new DLLFunction(winApiDLL, 'CloseClipboard');
    int         format;
    str         resultStr;
    ;
     openClipboard.returns(ExtTypes::DWord);
     openClipboard.arg(ExtTypes::DWord);
     enumClipboardFormats.arg(ExtTypes::DWord);
     enumClipboardFormats.returns(ExtTypes::DWord);
     getClipboardData.arg(ExtTypes::DWord);
     getClipboardData.returns(ExtTypes::String);
     closeClipboard.returns(ExtTypes::DWord);
     closeClipboard.arg();
 
      clearBuffCmd   =  'cmd /c echo off | clip';
      _cmdStr =  "tracert 192.168.59.186";
      fullCommand = 'cmd /c ' +'chcp 437 && '+ _cmdStr + ' | clip' ; 
     
  wsh             = new COM('WScript.Shell');
 
     wsh.Run(clearBuffCmd, 1, true);
     wsh.Run(fullCommand, 1, true);
     
     sleep(100);
     wsh.finalize();
     if(openClipboard.call(0))
     {
        format = enumClipboardFormats.call(0);
        while(format)
        {
            switch(format)
            {
                case 1: //CF_TEXT
                case 7: //CF_OEMTEXT
                case 13: //CF_OEMTEXT CF_UNICODETEXT
                     resultStr = getClipboardData.call(format); // результат tracert или ping
                     break;
                default:
                    break;
            }
          format = enumClipboardFormats.call(format);
        }
         closeClipboard.call();
     }
За это сообщение автора поблагодарили: BokarevSS (1).
Старый 26.12.2013, 17:34   #12  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от virhundo Посмотреть сообщение
не надо никакого вывода в файл
Клипбоард пользователя потерт.

Что только не делают люди чтобы не пользоваться \System Documentation\Classes\TextBuffer\fromClipboard
За это сообщение автора поблагодарили: gl00mie (1), BokarevSS (1).
Старый 26.12.2013, 23:07   #13  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Кстати, если уж пользоваться WshShell, то можно и получать оттуда stdout и stderror
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ping и стабильность системы Wamr DAX: Администрирование 3 26.11.2011 16:44
daxis: Troubleshooting orphaned sessions and SPIDS in Dynamics Ax Blog bot DAX Blogs 0 01.04.2009 18:05
Проблемы с работой Axapta Nevskij DAX: Администрирование 7 01.12.2003 14:21

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 05:18.