Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.129.210.35] |
|
Сообщ.
#1
,
|
|
|
Вот xml файл, полученный от модема через службу upnp.
<?xml version="1.0"?> <root xmlns="urn:schemas-upnp-org:device-1-0"> <specVersion> <major>1</major> <minor>0</minor> </specVersion> <URLBase>http://192.168.1.254:80</URLBase> <device> <deviceType>urn:schemas-upnp-org:device:InternetGatewayDevice:1</deviceType> <friendlyName>ADSL Modem/Router IGD</friendlyName> <manufacturer>ADSL Company</manufacturer> <manufacturerURL></manufacturerURL> <modelDescription>ADSL Modem/Router IGD</modelDescription> <modelName>ADSL Modem/Router IGD</modelName> <modelNumber>ADSL Modem/Router</modelNumber> <modelURL></modelURL> <serialNumber>00000001</serialNumber> <UDN>uuid:11111111-0000-c0a8-01fe-80414aa00000</UDN> <UPC>000000000001</UPC> <iconList> <icon> <mimetype>image/png</mimetype> <width>48</width> <height>48</height> <depth>8</depth> <url>/Images/L48x48x8</url> </icon> <icon> <mimetype>image/png</mimetype> <width>32</width> <height>32</height> <depth>8</depth> <url>/Images/L32x32x8</url> </icon> <icon> <mimetype>image/png</mimetype> <width>16</width> <height>16</height> <depth>8</depth> <url>/Images/L16x16x8</url> </icon> </iconList> <serviceList> <service> <serviceType>urn:schemas-upnp-org:service:Layer3Forwarding:1</serviceType> <serviceId>urn:upnp-org:serviceId:L3Forwarding1</serviceId> <SCPDURL>/L3Fwd.xml</SCPDURL> <controlURL>/UD/?0</controlURL> <eventSubURL>/?0</eventSubURL> </service> <service> <serviceType>urn:dslforum-org:service:DeviceConfig:1</serviceType> <serviceId>urn:upnp-org:serviceId:DeviceCfg1</serviceId> <SCPDURL>/DeviceCfg.xml</SCPDURL> <controlURL>/UD/?1</controlURL> <eventSubURL>/?1</eventSubURL> </service> <service> <serviceType>urn:dslforum-org:service:DeviceInfo:1</serviceType> <serviceId>urn:upnp-org:serviceId:DeviceInfo1</serviceId> <SCPDURL>/DeviceInfo.xml</SCPDURL> <controlURL>/UD/?2</controlURL> <eventSubURL>/?2</eventSubURL> </service> <service> <serviceType>urn:dslforum-org:service:ManagementServer:1</serviceType> <serviceId>urn:upnp-org:serviceId:LANMgmtSrv1</serviceId> <SCPDURL>/LanMgmtSrv.xml</SCPDURL> <controlURL>/UD/?3</controlURL> <eventSubURL>/?3</eventSubURL> </service> <service> <serviceType>urn:dslforum-org:service:Time:1</serviceType> <serviceId>urn:upnp-org:serviceId:Time1</serviceId> <SCPDURL>/Time.xml</SCPDURL> <controlURL>/UD/?4</controlURL> <eventSubURL>/?4</eventSubURL> </service> </serviceList> <deviceList> <device> <deviceType>urn:schemas-upnp-org:device:WANDevice:1</deviceType> <friendlyName>ADSL Modem/Router IGD</friendlyName> <manufacturer>ADSL Company</manufacturer> <manufacturerURL></manufacturerURL> <modelDescription>ADSL Modem/Router IGD</modelDescription> <modelName>ADSL Modem/Router IGD</modelName> <modelNumber>ADSL Modem/Router</modelNumber> <modelURL></modelURL> <serialNumber>00000001</serialNumber> <UDN>uuid:22222222-0000-c0a8-01fe-80414aa00000</UDN> <UPC>000000000001</UPC> <serviceList> <service> <serviceType>urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1</serviceTyp e> <serviceId>urn:upnp-org:serviceId:WANCommonIFC1</serviceId> <SCPDURL>/WanCommonIfc1.xml</SCPDURL> <controlURL>/UD/?5</controlURL> <eventSubURL>/?5</eventSubURL> </service> <service> <serviceType>urn:dslforum-org:service:WANDSLInterfaceConfig:1</serviceType> <serviceId>urn:upnp-org:serviceId:WANDslItfCfg1</serviceId> <SCPDURL>/WanDslItfCfg.xml</SCPDURL> <controlURL>/UD/?6</controlURL> <eventSubURL>/?6</eventSubURL> </service> <service> <serviceType>urn:dslforum-org:service:WANDSLConnectionManagement:1</serviceType> <serviceId>urn:upnp-org:serviceId:WANDslCntMgmt1</serviceId> <SCPDURL>/WanDslCntMgmt.xml</SCPDURL> <controlURL>/UD/?7</controlURL> <eventSubURL>/?7</eventSubURL> </service> </serviceList> <deviceList> <device> <deviceType>urn:schemas-upnp-org:device:WANConnectionDevice:1</deviceType> <friendlyName>ADSL Modem/Router IGD</friendlyName> <manufacturer>ADSL Company</manufacturer> <manufacturerURL></manufacturerURL> <modelDescription>ADSL Modem/Router IGD</modelDescription> <modelName>ADSL Modem/Router IGD</modelName> <modelNumber>ADSL Modem/Router</modelNumber> <modelURL></modelURL> <serialNumber>00000001</serialNumber> <UDN>uuid:33333333-0000-c0a8-01fe-80414aa00000</UDN> <UPC>000000000001</UPC> <serviceList> <service> <serviceType>urn:schemas-upnp-org:service:WANDSLLinkConfig:1</serviceType> <serviceId>urn:upnp-org:serviceId:WANDSLLinkC1</serviceId> <SCPDURL>/WanDslLink.xml</SCPDURL> <controlURL>/UD/?8</controlURL> <eventSubURL>/?8</eventSubURL> </service> <service> <serviceType>urn:schemas-upnp-org:service:WANIPConnection:1</serviceType> <serviceId>urn:upnp-org:serviceId:WANIPConn1</serviceId> <SCPDURL>/WanIpConn.xml</SCPDURL> <controlURL>/UD/?9</controlURL> <eventSubURL>/?9</eventSubURL> </service> <service> <serviceType>urn:dslforum-org:service:WANPPPConnection:1</serviceType> <serviceId>urn:upnp-org:serviceId:WANPPPConn1</serviceId> <SCPDURL>/WanPpp.xml</SCPDURL> <controlURL>/UD/?10</controlURL> <eventSubURL>/?10</eventSubURL> </service> </serviceList> </device> </deviceList> </device> <device> <deviceType>urn:schemas-upnp-org:device:LANDevice:1</deviceType> <friendlyName>ADSL Modem/Router IGD</friendlyName> <manufacturer>ADSL Company</manufacturer> <manufacturerURL></manufacturerURL> <modelDescription>ADSL Modem/Router IGD</modelDescription> <modelName>ADSL Modem/Router IGD</modelName> <modelNumber>ADSL Modem/Router</modelNumber> <modelURL></modelURL> <serialNumber>00000001</serialNumber> <UDN>uuid:44444444-0000-c0a8-01fe-80414aa00000</UDN> <UPC>000000000001</UPC> <serviceList> <service> <serviceType>urn:schemas-upnp-org:service:LANHostConfigManagement:1</serviceType > <serviceId>urn:upnp-org:serviceId:LANHostCfg1</serviceId> <SCPDURL>/LanHostCfgMgmt.xml</SCPDURL> <controlURL>/UD/?11</controlURL> <eventSubURL>/?11</eventSubURL> </service> <service> <serviceType>urn:dslforum-org:service:WLANConfiguration:1</serviceType> <serviceId>urn:upnp-org:serviceId:WLANCfg1</serviceId> <SCPDURL>/WLanCfg.xml</SCPDURL> <controlURL>/UD/?12</controlURL> <eventSubURL>/?12</eventSubURL> </service> <service> <serviceType>urn:dslforum-org:service:LANEthernetInterfaceConfig:1</serviceType> <serviceId>urn:upnp-org:serviceId:LANEnetItfCfg1</serviceId> <SCPDURL>/LanEnetItfCfg.xml</SCPDURL> <controlURL>/UD/?13</controlURL> <eventSubURL>/?13</eventSubURL> </service> </serviceList> </device> </deviceList> <presentationURL>/</presentationURL> </device> </root> Как видно, он содержит пустые строки после тега "</serviceType>" Вопрос: соответствует ли это стандарту xml? То есть ошибка в программе модема, или мне переделывать свою программу? Даже Windows 7 не может найти эти службы модема, которые содержат после тега "</serviceType>" пустые строки. Вывод скопирован с консоли cmd.exe. В неё текст был направлен с std::string UPNPNATHTTPClient::ReceiveResponce( void ) { std::string res; char buff[MAX_BUFFER] = {0}; int received(0); timeval timeout = {0}; timeout.tv_sec = 10; fd_set rfds; FD_ZERO( &rfds ); FD_SET( pimpl->http_sock, &rfds ); int err = select( pimpl->http_sock, &rfds, NULL, NULL, &timeout ); if( 0 == err ) { return string(""); } if( FD_ISSET( pimpl->http_sock, &rfds ) ) { while( received = recv( pimpl->http_sock, buff, sizeof(buff), 0 ) > 0 ) { res += buff; memset( buff, 0, sizeof(buff) ); } } return res; } UPNPNATHTTPClient::SoapResult UPNPNATHTTPClient::GetUPNPServiceDescription( std::string &desc , const std::string &desc_url ) { Impl::Manager connection_raii( this, pimpl.get() ); if( TCPConnected != pimpl->status ) { return SoapNoConnection; } string request = boost::str( boost::format( "GET %s HTTP/1.1\r\nHost: %s:%d\r\n\r\n" ) % desc_url.c_str() % pimpl->host.c_str() % pimpl->host_port ); cout << endl << endl << "request:" << endl << endl << request << endl << endl; Result res = SendRequest( request ); if( Succeeded != res ) { return SoapFailed; } desc = ReceiveResponce(); cout << endl << endl << "desc:" << endl << endl << desc << endl << endl; // extracting only the part of the xml. if( !desc.empty() ) { size_t xml_head = desc.find( "<?xml" ); if( string::npos != xml_head ) { desc = desc.substr( xml_head, desc.length() ); return SoapSucceeded; } } return SoapFailed; } Добавлено Вот пример вывода нормального модема: <?xml version="1.0"?> <root xmlns="urn:schemas-upnp-org:device-1-0"> <specVersion> <major>1</major> <minor>0</minor> </specVersion> <device> <deviceType>urn:schemas-upnp-org:device:InternetGatewayDevice:1</deviceType> <friendlyName>ZyXEL Keenetic DSL</friendlyName> <manufacturer>ZyXEL Communications Corp.</manufacturer> <manufacturerURL>http://www.zyxel.ru</manufacturerURL> <modelDescription>ZyXEL Keenetic DSL</modelDescription> <modelName>ZyXEL Keenetic DSL</modelName> <modelNumber>279-805-527-050-933</modelNumber> <modelURL>http://www.zyxel.ru/keenetic-dsl</modelURL> <serialNumber>S132E41012685</serialNumber> <UDN>uuid:e22202d5-b2c0-3d0f-e34f-1adc2caf2b68</UDN> <serviceList> <service> <serviceType>urn:schemas-upnp-org:service:Layer3Forwarding:1</serviceType> <serviceId>urn:upnp-org:serviceId:Layer3Forwarding1</serviceId> <controlURL>/ctl/L3F</controlURL> <eventSubURL>/evt/L3F</eventSubURL> <SCPDURL>/L3F.xml</SCPDURL> </service> </serviceList> <deviceList> <device> <deviceType>urn:schemas-upnp-org:device:WANDevice:1</deviceType> <friendlyName>WANDevice</friendlyName> <manufacturer>ZyXEL Communications Corp.</manufacturer> <manufacturerURL>http://www.zyxel.ru</manufacturerURL> <modelDescription>WAN Device</modelDescription> <modelName>WAN Device</modelName> <modelNumber>ZyXEL Keenetic DSL</modelNumber> <modelURL>http://www.zyxel.ru/keenetic-dsl</modelURL> <serialNumber>S132E41012685</serialNumber> <UDN>uuid:e22202d5-b2c0-3d0f-e34f-1adc2caf2b69</UDN> <UPC>000000000000</UPC> <serviceList> <service> <serviceType>urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1</serviceType> <serviceId>urn:upnp-org:serviceId:WANCommonIFC1</serviceId> <controlURL>/ctl/CmnIfCfg</controlURL> <eventSubURL>/evt/CmnIfCfg</eventSubURL> <SCPDURL>/WANCfg.xml</SCPDURL> </service> </serviceList> <deviceList> <device> <deviceType>urn:schemas-upnp-org:device:WANConnectionDevice:1</deviceType> <friendlyName>WANConnectionDevice</friendlyName> <manufacturer>ZyXEL Communications Corp.</manufacturer> <manufacturerURL>http://www.zyxel.ru</manufacturerURL> <modelDescription>ZyXEL Keenetic DSL</modelDescription> <modelName>ZyXEL Keenetic DSL</modelName> <modelNumber>ZyXEL Keenetic DSL</modelNumber> <modelURL>http://www.zyxel.ru/keenetic-dsl</modelURL> <serialNumber>S132E41012685</serialNumber> <UDN>uuid:e22202d5-b2c0-3d0f-e34f-1adc2caf2b6a</UDN> <UPC>000000000000</UPC> <serviceList> <service> <serviceType>urn:schemas-upnp-org:service:WANIPConnection:1</serviceType> <serviceId>urn:upnp-org:serviceId:WANIPConn1</serviceId> <controlURL>/ctl/IPConn</controlURL> <eventSubURL>/evt/IPConn</eventSubURL> <SCPDURL>/WANIPCn.xml</SCPDURL> </service> </serviceList> </device> </deviceList> </device> </deviceList> <presentationURL>http://172.16.100.1</presentationURL> </device> </root> |
Сообщ.
#2
,
|
|
|
Цитата Kozlov_Sergey @ Конечно соответствует. Как видно, он содержит пустые строки после тега "</serviceType>" Вопрос: соответствует ли это стандарту xml? |
Сообщ.
#3
,
|
|
|
Цитата Славян @ Цитата Kozlov_Sergey @ Конечно соответствует.Как видно, он содержит пустые строки после тега "</serviceType>" Вопрос: соответствует ли это стандарту xml? Даже Windows 7 не может найти эти службы модема. |
Сообщ.
#4
,
|
|
|
Завтра проверим на лицензионной Windows со всеми обновлениями.
|
Сообщ.
#5
,
|
|
|
Лицензионная Windows 7 тоже не может найти эти службы модема.
Лицензионная Windows 10 то находит, то не находит эти службы модема. Добавлено Модемы Billion - глючный металлолом. |
Сообщ.
#6
,
|
|
|
Модемы Billion неправильно работают с сетью (видимо ошибки задержек при передаче и приёме). особенно это сказывается на работе со службами модема через UPnP.
Ответы данного модема не содержат пустых строк в передаваемом xml файле (я поторопился с выводами в силу невозможности растяжения окна программы cmd.exe в Windows 7). Стоит отметить, что Windows 10 иногда нормально работает в этими модемами (шанс успеха около 50 %). Но это не оправдание для производителя указанного модема. |