Hello,
supposing you are referring to a Ping-Sensor, this means that the Ping sensor was not able to reach the specified target. This can have several reasons (bad connection, flood-protection, routing problems, etc.). You could try to increase the «Ping Count» in the Settings-Tab of the sensor, this helps with packet loss (the sensor will not go into an error-state if 2 of 10 ping packets per scan are lost). Another option is to use a higher timeout, this would help with a slow connection.
Best Regards.
Silver Soft
есть такое понятие как маршрут по умолчанию. Или маршрутизация вообще. Что это такое, не буду на этом останавливаться, везде вдоль и впоперек в интернете расписано что это за механизм и как оно работает. По сути — маршрутизатор это как раз и есть то устройство, которое выполняет перенаправление трафика. Такой механизм также есть в винде, встроенный, он предусматривает направление того или иного трафика на определенный сетевой адаптер в частности.
Как узнать, есть ли интернет на сетевом подключении? ведь даже если шлюз будет пинговаться, это еще совсем не факт, что у него установлено сетевое соединение и интернет на нем работает — например, кончились бабки или в кабельный шкаф провайдера попала молния образно говоря. Шлюз при этом будет пинговаться, но инета при этом не будет!
Тогда всю эту затею с попингуйством шлюзов можно выбросить коту под хвост!
Правильно было бы сделать следующим образом.
А. Строим таблицу. Она должна состоять из следующих полей:
1) Наименование сетевого подключения
2) Айпи адрес
3) Маска подсети
4) Шлюз по умолчанию.
5) ДНС сервер
6) ИДЕНТИФИКАТОР_СЕТЕВОГО_АДАПТЕРА
7) …. .
ну какбы стандартные настройки для сетевого подключения.
Как это сделать? Элементарно, вот там есть пример
http://msdn.microsoft.com/en-us/library/aa365917(v=vs.85).aspx
Б. Выбираем айпи адрес, который 200% есть в интернете. Это какой-нибудь может быть собственный сервак, или еще какая-нибудь ерундовина типа
http://whatismyip.org/
Получаем адрес — ну скажем, разрешаем имена при помощи gethostbyname
Вот у нас есть ip, куда надо слать траф
теперь нам надо выполнить команду которая направит трафик на заданный нами ресурс (ip) через определенный сетевой адаптер
route add ip mask 255.255.255.255 if ИДЕНТИФИКАТОР_СЕТЕВОГО_АДАПТЕРА
на сиплюсплюсе
logprintf(«Adapter index : %dn», iAdapterIndex);
char acCmdLine[1024];
STARTUPINFO cif;
PROCESS_INFORMATION pi;
char acRoute[512];
memset( acRoute, 0x00, sizeof(acRoute) );
// Getting windows directory
GetWindowsDirectory( acRoute, sizeof (acRoute) );
strcat( acRoute, «system32route.exe» );
logprintf(«executable: %sn», acRoute );
ZeroMemory(&cif, sizeof(cif));
cif.cb = sizeof(cif);
ZeroMemory(&pi, sizeof(pi));
cif.dwFlags |= STARTF_USESHOWWINDOW;
cif.wShowWindow = SW_HIDE;
memset(acCmdLine,0x00,sizeof(acCmdLine));
sprintf( acCmdLine, » add %s mask %s %s if %d», Secret.RouteAddr, Secret.RouteMask, Secret.LocalAddr, iAdapterIndex );
logprintf(«cmdline: %sn», acCmdLine);
if ( CreateProcess( acRoute, acCmdLine,NULL,NULL,FALSE,NULL,NULL,NULL,&cif,&pi)==TRUE ) {
// // printf(«waiting…n»);
WaitForSingleObject( pi.hProcess, INFINITE );
// printf(«end»);
}
В. Коннектимся на указанный айпишник. Трафик должен побежать через указанный адаптер. Мы можем законнектиться по тисипи, на 80й порт, скажем, или же погнать пинг — как душа пожелает.
Если коннект произошел успешно, или там приходит эхо — интернет есть.
Если нет — так извинте, интернет кончился.
Г. С точностью до наоборот удаляем за собой маршрут.
Д. Затею повторяем для каждого из адаптеров. Результаты коннекта помещаем в таблицу
Е. Имеем таблицу для всех адаптеров, где есть интернет а где нету интернета.
Собственно все. Направить весь сетевой поток можно при помощи того же самого route add 0.0.0.0 mask 0.0.0.0 ….. блаблабла — весь сетевой траф побежит через указанный адаптер.
Да, программа должна запускаться от имени администратора под семерками и вистами
nemez
Сообщ.
#16
,
15.07.11, 10:33
Senior Member
Рейтинг (т): 17
Silver Soft
есть такое понятие как маршрут по умолчанию. Или маршрутизация вообще. Что это такое, не буду на этом останавливаться, везде вдоль и впоперек в интернете расписано что это за механизм и как оно работает. По сути — маршрутизатор это как раз и есть то устройство, которое выполняет перенаправление трафика. Такой механизм также есть в винде, встроенный, он предусматривает направление того или иного трафика на определенный сетевой адаптер в частности.
Как узнать, есть ли интернет на сетевом подключении? ведь даже если шлюз будет пинговаться, это еще совсем не факт, что у него установлено сетевое соединение и интернет на нем работает — например, кончились бабки или в кабельный шкаф провайдера попала молния образно говоря. Шлюз при этом будет пинговаться, но инета при этом не будет!
Тогда всю эту затею с попингуйством шлюзов можно выбросить коту под хвост!
Правильно было бы сделать следующим образом.
А. Строим таблицу. Она должна состоять из следующих полей:
1) Наименование сетевого подключения
2) Айпи адрес
3) Маска подсети
4) Шлюз по умолчанию.
5) ДНС сервер
6) ИДЕНТИФИКАТОР_СЕТЕВОГО_АДАПТЕРА
7) …. .
ну какбы стандартные настройки для сетевого подключения.
Как это сделать? Элементарно, вот там есть пример
http://msdn.microsoft.com/en-us/library/aa365917(v=vs.85).aspx
Б. Выбираем айпи адрес, который 200% есть в интернете. Это какой-нибудь может быть собственный сервак, или еще какая-нибудь ерундовина типа
http://whatismyip.org/
Получаем адрес — ну скажем, разрешаем имена при помощи gethostbyname
Вот у нас есть ip, куда надо слать траф
теперь нам надо выполнить команду которая направит трафик на заданный нами ресурс (ip) через определенный сетевой адаптер
route add ip mask 255.255.255.255 if ИДЕНТИФИКАТОР_СЕТЕВОГО_АДАПТЕРА
на сиплюсплюсе
logprintf(«Adapter index : %dn», iAdapterIndex);
char acCmdLine[1024];
STARTUPINFO cif;
PROCESS_INFORMATION pi;
char acRoute[512];
memset( acRoute, 0x00, sizeof(acRoute) );
// Getting windows directory
GetWindowsDirectory( acRoute, sizeof (acRoute) );
strcat( acRoute, «\system32\route.exe» );
logprintf(«executable: %sn», acRoute );
ZeroMemory(&cif, sizeof(cif));
cif.cb = sizeof(cif);
ZeroMemory(&pi, sizeof(pi));
cif.dwFlags |= STARTF_USESHOWWINDOW;
cif.wShowWindow = SW_HIDE;
memset(acCmdLine,0x00,sizeof(acCmdLine));
sprintf( acCmdLine, » add %s mask %s %s if %d», Secret.RouteAddr, Secret.RouteMask, Secret.LocalAddr, iAdapterIndex );
logprintf(«cmdline: %sn», acCmdLine);
if ( CreateProcess( acRoute, acCmdLine,NULL,NULL,FALSE,NULL,NULL,NULL,&cif,&pi)==TRUE ) {
// // printf(«waiting…n»);
WaitForSingleObject( pi.hProcess, INFINITE );
// printf(«end»);
}
В. Коннектимся на указанный айпишник. Трафик должен побежать через указанный адаптер. Мы можем законнектиться по тисипи, на 80й порт, скажем, или же погнать пинг — как душа пожелает.
Если коннект произошел успешно, или там приходит эхо — интернет есть.
Если нет — так извинте, интернет кончился.
Г. С точностью до наоборот удаляем за собой маршрут.
Д. Затею повторяем для каждого из адаптеров. Результаты коннекта помещаем в таблицу
Е. Имеем таблицу для всех адаптеров, где есть интернет а где нету интернета.
Собственно все. Направить весь сетевой поток можно при помощи того же самого route add 0.0.0.0 mask 0.0.0.0 ….. блаблабла — весь сетевой траф побежит через указанный адаптер.
Да, программа должна запускаться от имени администратора под семерками и вистами
Go to prtg
Help my ping sensor don’t work sometimes.
Hi everyone.
I’m still new to PRTG but I have hit a small problem.
My ISP at home is not taking my outage and latency problems seriously so I wanted to set up PRTG to monitor my connection.
before I used WinMTR but that doesn’t give me a time and date for the problems, which will only make it harder to make my ISP look for the problem, so my plan is to switch to PRTG.
My plan was to have a ping sensor for the first few steps of the network path from my server, out to 8.8.8.8 the first 5 steps are always the same so they should be easy to monitor.
however, I get a «Request timed out (ICMP error # 11010)» error on some of it’s what is confusing me is that WinMTR can ping the addresses fine, but PRTG and cmd somehow can’t. is there some setting I’m missing to make it work? or how can I make this log of when and where the problem might be.
Now fair should be fair. My IPS are very helpful, but it’s not them who own the cables in the ground and the IPS that do are hard to play ball with, my guess is that if they deliver subpar support for the IPS that then cant help me, I more inclined to pay more for my internet to have it at the IPS that owns the cables, the only thins is I have been there and the support is not worth the 50% more it costs for the same speed.
Anyway back to the problem, am I approach it completely wrong with the ping sensors? are they a better way to try and monitor a connection over equipment I don’t have access to?
Bonus Question the image is from a ping sensor that does work but seems a bit odd to me how it goes up and up in ms and drops off to normal, to repeat this pattern. any thoughts?
- Remove From My Forums
-
Question
-
Static IP assigned. I can ping «google.com». so, the network is ok, the DNS is ok. But I can’t ping another PC. I got the message:
ping: transmit failed, error code 11010.
I used Microsoft Network Monitor to monitor the network trafic:
31 14:36:37 2013/1/22 7.6310813 192.168.0.171 192.168.0.170 ICMP ICMP:Echo Request Message, From 192.168.0.171 To 192.168.0.170 {IPv4:9} 34 14:36:37 2013/1/22 7.6316752 192.168.0.170 192.168.0.171 ICMP ICMP:Echo Reply Message, From 192.168.0.170 To 192.168.0.171 {IPv4:9} 52 14:36:39 2013/1/22 8.9771624 192.168.0.171 192.168.0.170 ICMP ICMP:Echo Request Message, From 192.168.0.171 To 192.168.0.170 {IPv4:9} 53 14:36:39 2013/1/22 8.9773987 192.168.0.170 192.168.0.171 ICMP ICMP:Echo Reply Message, From 192.168.0.170 To 192.168.0.171 {IPv4:9}
192.168.0.170 is the PC. 192.168.0.171 is CE 5.0 device.
Answers
-
OK. Can you try putting a switch in between the two systems??
I mean: System 1 <-> Ethernet Switch <-> System 2.
-
Marked as answer by
Wednesday, January 23, 2013 2:01 AM
-
Marked as answer by
It turns out that the error code 11010
is actually not WSA_QOS_ADMISSION_FAILURE
from WinSock (which is not involved here), but a completely different value from the IP stack’s ICMP_ECHO_REPLY
structure with much more meaningful meaning:
IP_REQ_TIMED_OUT (11010) The request timed out
You are supposed to call GetIpErrorString()
first and only «if the function fails, use FormatMessage to obtain the message string for the returned error«.
Unfortunately, that does not help with that other value, 998
.
One clue might be the page «Mapping NT Status Error Codes to Win32 Error Codes», which says that the NT status conditions which map (or mapped when it was last updated, in 2005) to the Win32 code 998 (ERROR_NOACCESS
) are more broad:
STATUS_DATATYPE_MISALIGNMENT ERROR_NOACCESS
STATUS_ACCESS_VIOLATION ERROR_NOACCESS
STATUS_DATATYPE_MISALIGNMENT_ERROR ERROR_NOACCESS
It seems likely that whenever something fails during the IOCTL call (which sends the ICMP echo request to the kernel to be really handled), the underlying exception is swallowed if possible and only this generic Win32 code is sent back.
Therefore it might be that you are really passing some not entirely correct data to the function (like unaligned buffer on the stack, that might explain why it happens sporadically), or even hint at some bug inside the ICMP stack. I’m afraid that only some hardcore kernel debugging could reveal the real cause.
-
asmic
New Member
- Публикаций:
-
0
- Регистрация:
- 19 фев 2007
- Сообщения:
- 85
Подскажите пожалуйста. С помомощью какой функции можно узнать подключён ли интернет ( т.е. надо узнать состояние интернет соединения — подключено или нет ). И если не трудно опишите её и напишите пожалуйста наглядный пример. Заранее спасибо.
-
MCNet
New Member
- Публикаций:
-
0
- Регистрация:
- 23 ноя 2006
- Сообщения:
- 74
Ну, например ping.exe можно заюзать вместо функции
-
calidus
Member
- Публикаций:
-
0
- Регистрация:
- 27 дек 2005
- Сообщения:
- 618
internetCheckConnection
site bd «www.ya.ru»,0
push 0
push 1 ; тут полюбому оставь единицу ….так как при 0 не всегда работает ..это
;показатель какой сервер для проверки используется
push offset site
call internetCheckConnection
cmp eax, 1 -
rain
New Member
- Публикаций:
-
0
- Регистрация:
- 22 апр 2006
- Сообщения:
- 976
InternetGetConnectedState
-
WIN32
Member
- Публикаций:
-
0
- Регистрация:
- 20 янв 2007
- Сообщения:
- 338
-
MCNet
New Member
- Публикаций:
-
0
- Регистрация:
- 23 ноя 2006
- Сообщения:
- 74
WIN32
[offtop]
Ну я поздно понял что требовалось
[/offtop] -
paralvic
Пархоменко Александр Викторович
???
-
InternetGetConnectedState = 0 ;( нет интернета )
-
InternetCheckConnection = 0 ;( нет интернета )
-
IP-address = 192.168.1.1 ;( нет интернета )
Но я ведь с этого компа пишу этот пост!
Когда так бывает?
))
-
-
Flint_ta
New Member
- Публикаций:
-
0
- Регистрация:
- 25 май 2008
- Сообщения:
- 312
частенько так бывает.
Я так проверяю:
-
internet proc ; проверка соединения с интернет
-
newbie
New Member
- Публикаций:
-
0
- Регистрация:
- 2 дек 2008
- Сообщения:
- 1.246
Когда долго не отпускает
))
-
wasm_test
wasm test user
- Публикаций:
-
0
- Регистрация:
- 24 ноя 2006
- Сообщения:
- 5.582
Какой частый вопрос) Нарыл старые кодесы, глянул:
1. Если интересует именно статус соединений RAS (remote access service — виндовый сервис, управляющий подключениями PPTP (VPN), PPPoE и др, часто используемыми для соединения с интернетом), то смотреть в сторону RasEnumConnections: http://msdn.microsoft.com/en-us/library/aa377284(v=vs.85).aspx
Там же есть и example, выводящий список подключенных соединений.
Header: ras.h
Library: rasapi32.lib
Depends: rasapi32.dll2. Так же стоит посмотреть и на InternetGetConnectedState
-
InternetGetConnectedState(
-
__reserved DWORD dwReserved);
Нужные флажки — ((dwFlags & INTERNET_CONNECTION_CONFIGURED) && (dwFlags & (INTERNET_CONNECTION_LAN|INTERNET_CONNECTION_MODEM)) && !(dwFlags & INTERNET_CONNECTION_OFFLINE))
Но она работает только в одну сторону — отрицательный результат говорит о том, что инета нет, но положительный не обязательно означает наличие активного подклчения.
Header: wininet.h
Library: wininet.lib
Depends: wininet.dll3. Грязный хак — попробвать подключиться (например, InternetOpen + InternetOpenUrl)
4. Весьма надежно, но все равно «нелегально» — попробовать резолвнуть какое-нибудь доменное имя, например, www.ru
5. Послать ICMP Echo Request (ping) к серверу с известным IP адресом, например, корневому DNS серверу (Например, DNS Root ‘A’: 198.41.0.4)
API: IcmpCreateFile + IcmpSendEcho + IcmpParseReply
Header: icmpapi.h
Library: iphlpapi.lib
Depends: iphlpapi.dll / icmp.dllВсе вместе:
-
#pragma comment (lib, «wininet»)
-
#pragma comment (lib, «rasapi32»)
-
#pragma comment (lib, «url»)
-
#pragma comment (lib, «Iphlpapi»)
-
#pragma comment (lib, «ws2_32»)
-
DWORD dwCb = sizeof(RASCONN);
-
DWORD dwErr = ERROR_SUCCESS;
-
RASCONN* lpRasConn = NULL;
-
// Loop through in case the information from RAS changes between calls.
-
// If the memory is allocated, free it.
-
HeapFree(GetProcessHeap(), 0, lpRasConn);
-
// Allocate the size needed for the RAS structure.
-
lpRasConn = (LPRASCONN) HeapAlloc(GetProcessHeap(), 0, dwCb);
-
dwErr = ERROR_NOT_ENOUGH_MEMORY;
-
// Set the structure size for version checking purposes.
-
lpRasConn->dwSize = sizeof(RASCONN);
-
// Call the RAS API then exit the loop if we are successful or an unknown
-
dwErr = RasEnumConnections(
-
if (ERROR_INSUFFICIENT_BUFFER != dwErr)
-
// In the success case, print the names of the connections.
-
if (ERROR_SUCCESS == dwErr)
-
printf(«tActive RAS connections:n»);
-
for (i = 0; i < dwConnections; i++)
-
printf(«t * [%ws]n», lpRasConn[i].szEntryName);
-
printf(«tRAS: RasEnumConnections failed: Error = %dn», dwErr);
-
// Free the memory if necessary.
-
HeapFree(GetProcessHeap(), 0, lpRasConn);
-
return (dwConnections > 0);
-
void icmp_err (DWORD Status)
-
case IP_SUCCESS: printf(«t : Successfuln»); break;
-
case IP_DEST_NET_UNREACHABLE: printf(«t : Destination net unreachablen»); break;
-
case IP_DEST_HOST_UNREACHABLE: printf(«t : Destination host unreachablen»); break;
-
case IP_REQ_TIMED_OUT: printf(«t : Request timed outn»); break;
-
case IP_BAD_DESTINATION: printf(«t : Bad destinationn»); break;
-
case IP_BAD_ROUTE: printf(«t : Bad routen»); break;
-
default: printf(«t : failure (0x%x)n», Status);
-
// send ICMP Echo Request to the specified host
-
bool IcmpTestEcho (const char *host, bool *pbStatus)
-
char IcmpData[] = «abcdefghijklmnopqrstuvwxyz»;
-
char ReplyBuffer[512] = {0};
-
DWORD ReplySize = sizeof(ReplyBuffer);
-
DWORD IcmpTimeout = 1000; // ICMP echo timeout : 3000 ms
-
if ((hIcmpFile = IcmpCreateFile()) != INVALID_HANDLE_VALUE)
-
if (getaddrinfo (host, 0, 0, &addrinfo) != -1)
-
DWORD dwRetVal = IcmpSendEcho (hIcmpFile,
-
((PSOCKADDR_IN)addrinfo->ai_addr)->sin_addr.s_addr,
-
IcmpData, strlen(IcmpData),
-
PICMP_ECHO_REPLY EchoReply = (PICMP_ECHO_REPLY) ReplyBuffer;
-
struct in_addr ReplyAddr;
-
ReplyAddr.S_un.S_addr = EchoReply->Address;
-
printf(«tSent icmp message to %sn», host);
-
printf(«tReceived %ld icmp message responsesn», dwRetVal);
-
printf(«tInformation from the first response:n»);
-
printf(«tReceived %ld icmp message responsen», dwRetVal);
-
printf(«tInformation from this response:n»);
-
printf(«t Received from %sn», inet_ntoa( ReplyAddr ) );
-
printf(«t Status = %ldn»,
-
icmp_err(EchoReply->Status);
-
printf(«t Roundtrip time = %ld millisecondsn»,
-
EchoReply->RoundTripTime);
-
*pbStatus = (success = true);
-
printf(«tCall to IcmpSendEcho failed.n»);
-
printf(«tIcmpSendEcho returned error: %ldn», GetLastError() );
-
icmp_err (GetLastError());
-
IcmpCloseHandle (hIcmpFile);
-
printf(«IcmpCreateFile failedn»);
-
// test inet connection by issuing domain name resolving query (DNS request)
-
// (for domain name ‘www.ru’)
-
bool InetTestConnect_Dns()
-
const char szDomainName[] = «www.ru»;
-
getaddrinfo (szDomainName, 0, 0, &addr);
-
printf(«tDNS resolving ‘%s’ … = %sn»,
-
addr ? inet_ntoa (((PSOCKADDR_IN)addr->ai_addr)->sin_addr) : «(no addr)»
-
enum ICMP_FAILURE_STATUS {
-
static const char* szIcmpFailureStatus[] = {
-
// test inet connection by sending icmp echo request to the DNS Root Server A
-
ICMP_FAILURE_STATUS InetTestConnect_Icmp()
-
const char szDnsRootA[] = «198.41.0.4»;
-
if (!IcmpTestEcho (szDnsRootA, &bIcmp))
-
return bIcmp ? ICMP_SUCCESS : ICMP_TIMEOUT;
-
// try open WinInet connection
-
bool InetTestConnect_WinInet()
-
const WCHAR wszServerName[] = L»google.com»;
-
int nServerPort = INTERNET_DEFAULT_HTTP_PORT;
-
HINTERNET hInternet = InternetOpen (
-
INTERNET_OPEN_TYPE_PRECONFIG,
-
printf(«tInternetOpen : internet handle openedn»);
-
DWORD dwConnectTimeout = 2000;
-
if (!InternetSetOption (hInternet, INTERNET_OPTION_CONNECT_TIMEOUT, &dwConnectTimeout, sizeof(dwConnectTimeout)))
-
return printf(«tInternetSetOption : failedn»), false;
-
HINTERNET hFile = InternetOpenUrl (hInternet,
-
printf(«tInternetOpenUrl : connectedn»);
-
DWORD dwBytesAvailable = -1;
-
if (!InternetQueryDataAvailable (hFile, &dwBytesAvailable, 0, 0))
-
printf(«tBytes available : %dn», dwBytesAvailable);
-
InternetCloseHandle (hFile);
-
printf(«tInternetOpenUrl : connect FAILEDn»);
-
InternetCloseHandle (hInternet);
-
printf(«tInternetOpen : opening internet handle FAILEDn»);
-
printf(«RAS connection status : %snn»,
-
IsRasConnected() ? «connected (OK)» : «disconnected (ERROR)»
-
printf(«test inet connection [DNS] : %snn»,
-
InetTestConnect_Dns() ? «true (OK)» : «false (ERROR)»
-
printf(«test inet connection [ICMP] : %snn»,
-
szIcmpFailureStatus[InetTestConnect_Icmp()]
-
if (!InternetGetConnectedState (&dwFlags, 0))
-
return printf(«InternetGetConnectedState failed (last err 0x%x)n», GetLastError());
-
printf(«InternetGetConnectedState : flags = 0x%08x;», dwFlags);
-
if (dwFlags & INTERNET_CONNECTION_CONFIGURED) printf(» Configured»);
-
if (dwFlags & INTERNET_RAS_INSTALLED) printf(» RAS-Installed»);
-
if (dwFlags & INTERNET_CONNECTION_OFFLINE) printf(» Offline»);
-
if (dwFlags & INTERNET_CONNECTION_LAN) printf(» LAN»);
-
if (dwFlags & INTERNET_CONNECTION_MODEM) printf(» Modem»);
-
printf(«test inet connection [WinInet] : %snn»,
-
InetTestConnect_WinInet() ? «true (OK)» : «false (ERROR)»
Вывод при подкллюченном инете:
При отключенном инете
PS. Да, я видел дату топика ^)
-
paralvic
Пархоменко Александр Викторович
Спасибо, Great. remote access service вещь хорошая.
В моем клиническом случае ( интернет раздается через беспроводной роутер )
msdn example вывел диагноз:
There are no active RAS connections.Надежность, ты сказал, DNS (берется из кэша) как у гадания по кофейной гуще.
Спасибо за ICMP Echo Request (ping)
Я в этом слабо разбираюсь, нашел пример Quantum-а
http://www.wasm.ru/forum/viewtopic.php?id=14447И против лома нет приема: InternetOpen
Он в INTERNET.zip
-
paralvic
Пархоменко Александр Викторович
Есть один жирненький минус.
Есть ли у программы право доступа в интернет?-
; Думаю по-умолчанию у этой программы проблем с доступом не будет.
-
invoke WinExec, CSTR(«C:Program FilesInternet Exploreriexplore.exe http://google.com»), 1
-
; Дальше устраивать пытки эксплореру.
-
-
wasm_test
wasm test user
- Публикаций:
-
0
- Регистрация:
- 24 ноя 2006
- Сообщения:
- 5.582
Если у программы нет прав доступа в сеть, на кой черт ей знать, есть ли коннект? )
-
sn0w
Active Member
- Публикаций:
-
0
- Регистрация:
- 27 фев 2010
- Сообщения:
- 941
для ипв4 есть правила адресации, но тут зависит уже от подключения. за натом такой код ясное дело бесполезен.
-
bool TMain::IsWANAddress(UnicodeString &addr)
-
//10.0.0.0 — 10.255.255.255 a
-
//172.16.0.0 — 172.31.255.255 b
-
//192.168.0.0 — 192.168.255.255 c
-
//169.254.0.0 -169.254.255.255 dhcp noreply
-
if( !wcsncmp(addr.c_str(), L»192″, 3) ||
-
!wcsncmp(addr.c_str(), L»127″, 3) ||
-
!wcsncmp(addr.c_str(), L»10.», 3) ||
-
!wcsncmp(addr.c_str(), L»172″, 3) ||
-
!wcsncmp(addr.c_str(), L»169″, 3))
ну необязательно в кеше.. например так
-
status = DnsQuery_W(UnicodeString(thisip).t_str(),
на днях просто кодил одну тему на радстудио, поэтому не удивляйтесь всяким UnicodeString etc )