내 컴퓨터가 인터넷에 액세스 할 수 있는지 또는 C/C++을 사용하지 않는지 프로그래밍 방식으로 확인할 수 있습니까? IP에 핑하는 것입니까? NIC는 어떻게합니까?내 컴퓨터가 인터넷에 액세스 할 수 있는지 여부를 프로그래밍 방식으로 확인하십시오.
내가
내 컴퓨터가 인터넷에 액세스 할 수 있는지 또는 C/C++을 사용하지 않는지 프로그래밍 방식으로 확인할 수 있습니까? IP에 핑하는 것입니까? NIC는 어떻게합니까?내 컴퓨터가 인터넷에 액세스 할 수 있는지 여부를 프로그래밍 방식으로 확인하십시오.
내가
, 그냥, 다음 코드는 작동이
#include <iostream>
#include <windows.h>
#include <wininet.h>
using namespace std;
int main(){
if(InternetCheckConnection(L"http://www.google.com",FLAG_ICC_FORCE_CONNECTION,0))
{
cout << "connected to internet";
}
return 0;
}
사용자가 인터넷에 연결되어 있지만 Google에 액세스 할 수없는 경우 (예 : 많은 국가에있는 10 억 명 중 한 명) (https://en.wikipedia.org/wiki/Google_China#Ending_of_self-censorship)? –
내가 생각하는 그런 종류의 아무것도 없습니다 윈도우 7을 사용하고 있지만, 당신이 시도 할 수 있습니다 : 내가 좋아하는 뭔가를 의미
가장 쉬운 방법은 시도하는 것입니다알려진 외부 IP 주소에 연결하십시오.
Windows에서 오류가 발생하면 connect 함수는 SOCKET_ERROR
을 반환하고 WSAGetLastError
은 보통 WSAEHOSTUNREACH
(패킷을 호스트로 보낼 수 없음을 의미)을 반환합니다.
리눅스에서는 -1
이 다시 표시되며 errno는 ENETUNREACH
이됩니다. 몇 가지 유용한 링크 : Windows에서 작업하는 경우이 창에 있다면
제안으로, 나는'8.8.8.8' (google의 공개 DNS 서버)와 같은로드를 취할 수있는 소수의 "유명한"DNS 서버에 연결하려고합니다. 둘 이상의 회사에서 둘 이상을 수행하면 일부 네트워크 실패 (예 : Google 다운)를 감지하고 사용자가 다운되었다고 생각하는 경우에도 사용자가 "인터넷 액세스를 강제하도록"허용 할 수 있습니다 (즉, 단지 당신의 경험주의가 문제를 가지고 있기 때문에). 또한 얼마나 많은 연결을 할 수 있는지 기억하십시오 - 1 초마다 점검하는 것은 무례합니다. 내부 테스트의 경우 소유 한 IP 주소를 사용하십시오. 그러면 망칠 때와 스팸으로 고칠 수 있습니다. – Yakk
더 나은 방법 : 일반적으로 자신의 서버에 액세스하려면 인터넷 액세스가 필요합니다. 먼저 해봐. 그것이 실패한 경우 (드물게)'8.8.8.8'을 핑 (ping)하려고하면 서버 또는 다운 된 인터넷 연결인지 여부를 사용자에게 알릴 수 있습니다. – MSalters
시도 :
#include <iostream>
#include <windows.h>
int main(){
if (system("ping www.google.com")){
std::cout<<"\nNot connnected to the internet\n\n";
}
else{
std::cout<<"\nConnected to the internet\n\n";
}
system("pause");
return 0;
}
코드 스 니프 here을 포함하여 실제로 매우 현명한 방법입니다.
기본적으로 cmd 옵션을 사용합니다. CMD를 사용 중일 때 : route print
입니다.
이렇게하면 라우팅 테이블이 배열로 매핑되어 사용 가능한 인터넷 연결로 0.0.0.0을 찾습니다.
내가 InternetCheckConnection() 함수에 추가하여 while(true){//the code in here } //check for inet connection , else will sleep for 10 mins and check again
로 사용,는 Win32 API 함수를 가지고 (InternetGetConnectedState()) (의 가용성) 형태에 대해 false/진정한를 반환 인터넷 연결의 : 그것은 또한 당신을 알려줍니다
https://msdn.microsoft.com/en-us/library/windows/desktop/aa384702(v=vs.85).aspx
당신이 (LAN, 모뎀, 프록시 등)가 인터넷에 연결의 유형 - 흔히 알고 매우 편리 할 수있다.
Windows 7에는 이미이 작업을 수행하는 서비스가 있습니다. 작업 표시 줄 아이콘이 작동하여 네트워크에 인터넷 연결이 있음을 알려줍니다. –
@EricUrban Windows는 DNS 조회와 특정 IP의 문서 요청을 조합하여 처리합니다. [Windows 7 네트워크 인식] (http://blog.superuser.com/2011/05/16/windows-7-network-awareness/)을 참조하십시오. –
@WesleyBaugh 정확합니다. –