C/C++使用socket實(shí)現(xiàn)判斷ip是否能連通
更新時(shí)間:2023年07月19日 17:22:03 作者:王牌飛行員_里海
這篇文章主要為大家詳細(xì)介紹了C/C++如何使用socket實(shí)現(xiàn)判斷ip是否能連通,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下
簡介
使用socket判斷ip是否能聯(lián)通
效果
代碼
#include <iostream> #include <cstdlib> #include <cstdio> #include <winsock2.h> #include <string> #include <chrono> #pragma comment(lib, "ws2_32.lib") using namespace std; bool canConnectToRouter(string ipAddress) { WSADATA wsaData; if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) // 初始化Windows Socket庫 return false; int sockfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); // 創(chuàng)建一個(gè)TCP socket if (sockfd < 0) return false; struct sockaddr_in serveraddr; serveraddr.sin_addr.s_addr = inet_addr(ipAddress.c_str()); serveraddr.sin_family = AF_INET; serveraddr.sin_port = htons(139); int ret = connect(sockfd, (struct sockaddr*)&serveraddr, sizeof(serveraddr)); // 連接服務(wù)器 if (ret < 0) { closesocket(sockfd); return false; } closesocket(sockfd); return true; } int main() { for (int i = 0; i < 256; i++) { string ip = "192.168.16." + to_string(i); std::cout << ip << "\t"; auto start = chrono::steady_clock::now(); // 記錄開始時(shí)間 if (canConnectToRouter(ip.c_str())) std::cout << "InCompany\t"; else std::cout << "NotInCompany\t"; auto end = chrono::steady_clock::now(); // 記錄結(jié)束時(shí)間 auto duration = chrono::duration_cast<chrono::milliseconds>(end - start); // 計(jì)算執(zhí)行時(shí)間,單位為毫秒 cout << "耗時(shí):" << duration.count() << "毫秒" << endl; } cin.get(); }
到此這篇關(guān)于C/C++使用socket實(shí)現(xiàn)判斷ip是否能連通的文章就介紹到這了,更多相關(guān)C++ socket判斷ip是否連通內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++中Socket網(wǎng)絡(luò)編程實(shí)例詳解
這篇文章主要介紹了C++中Socket網(wǎng)絡(luò)編程實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04C++計(jì)算每個(gè)字符出現(xiàn)的次數(shù)
這篇文章主要介紹了C++計(jì)算每個(gè)字符出現(xiàn)的次數(shù)的相關(guān)資料,需要的朋友可以參考下2016-05-05C語言 數(shù)據(jù)結(jié)構(gòu)之連續(xù)存儲數(shù)組的算法
這篇文章主要介紹了C語言 數(shù)據(jù)結(jié)構(gòu)之連續(xù)存儲數(shù)組的算法的相關(guān)資料,需要的朋友可以參考下2017-01-01如何判斷一個(gè)數(shù)是否為2的冪次方?若是,并判斷出來是多少次方?
本篇文章是對如何判斷一個(gè)數(shù)是否為2的冪次方?若是,并判斷出來是多少次方的實(shí)現(xiàn)方法,進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05