C/C++使用socket實(shí)現(xiàn)判斷ip是否能連通
簡(jiǎn)介
使用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庫(kù) 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(); // 記錄開(kāi)始時(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++中Socket網(wǎng)絡(luò)編程實(shí)例詳解
這篇文章主要介紹了C++中Socket網(wǎng)絡(luò)編程實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04C語(yǔ)言實(shí)現(xiàn)冒泡排序的思路以及過(guò)程
冒泡排序是最簡(jiǎn)單的排序方法,理解起來(lái)容易。雖然它的計(jì)算步驟比較多,不是最快的,但它是最基本的,初學(xué)者一定要掌握。本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值2021-09-09C++計(jì)算每個(gè)字符出現(xiàn)的次數(shù)
這篇文章主要介紹了C++計(jì)算每個(gè)字符出現(xiàn)的次數(shù)的相關(guān)資料,需要的朋友可以參考下2016-05-05C語(yǔ)言 數(shù)據(jù)結(jié)構(gòu)之連續(xù)存儲(chǔ)數(shù)組的算法
這篇文章主要介紹了C語(yǔ)言 數(shù)據(jù)結(jié)構(gòu)之連續(xù)存儲(chǔ)數(shù)組的算法的相關(guān)資料,需要的朋友可以參考下2017-01-01如何判斷一個(gè)數(shù)是否為2的冪次方?若是,并判斷出來(lái)是多少次方?
本篇文章是對(duì)如何判斷一個(gè)數(shù)是否為2的冪次方?若是,并判斷出來(lái)是多少次方的實(shí)現(xiàn)方法,進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05