欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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í)例詳解

    這篇文章主要介紹了C++中Socket網(wǎng)絡(luò)編程實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • C++實(shí)現(xiàn)MyString的示例代碼

    C++實(shí)現(xiàn)MyString的示例代碼

    本文主要介紹了C++實(shí)現(xiàn)MyString的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 詳解C語言中的#define宏定義命令用法

    詳解C語言中的#define宏定義命令用法

    有的時(shí)候?yàn)榱顺绦虻耐ㄓ眯?可以使用#define預(yù)處理宏定義命令,它的具體作用就是方便程序段的定義和修改,下面就來詳解C語言中的#define宏定義命令用法.
    2016-05-05
  • C語言實(shí)現(xiàn)冒泡排序的思路以及過程

    C語言實(shí)現(xiàn)冒泡排序的思路以及過程

    冒泡排序是最簡單的排序方法,理解起來容易。雖然它的計(jì)算步驟比較多,不是最快的,但它是最基本的,初學(xué)者一定要掌握。本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值
    2021-09-09
  • C語言漢諾塔的簡單了解

    C語言漢諾塔的簡單了解

    這篇文章主要給大家介紹了關(guān)于C語言漢諾塔的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • C++計(jì)算每個(gè)字符出現(xiàn)的次數(shù)

    C++計(jì)算每個(gè)字符出現(xiàn)的次數(shù)

    這篇文章主要介紹了C++計(jì)算每個(gè)字符出現(xiàn)的次數(shù)的相關(guān)資料,需要的朋友可以參考下
    2016-05-05
  • C語言三子棋小游戲?qū)崿F(xiàn)全程

    C語言三子棋小游戲?qū)崿F(xiàn)全程

    三子棋是一種民間傳統(tǒng)游戲,又叫九宮棋、圈圈叉叉、一條龍、井字棋等。將正方形對角線連起來,相對兩邊依次擺上三個(gè)雙方棋子,只要將自己的三個(gè)棋子走成一條線,對方就算輸了,想用c語言做出這個(gè)游戲,事實(shí)上也是比較簡單的,下面通過c語言進(jìn)行對五子棋的分析
    2022-05-05
  • C語言 數(shù)據(jù)結(jié)構(gòu)之連續(xù)存儲數(shù)組的算法

    C語言 數(shù)據(jù)結(jié)構(gòu)之連續(xù)存儲數(shù)組的算法

    這篇文章主要介紹了C語言 數(shù)據(jù)結(jié)構(gòu)之連續(xù)存儲數(shù)組的算法的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • win10中的dlib庫安裝過程

    win10中的dlib庫安裝過程

    這篇文章主要介紹了win10中dlib庫的安裝過程,本文通過實(shí)例圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 如何判斷一個(gè)數(shù)是否為2的冪次方?若是,并判斷出來是多少次方?

    如何判斷一個(gè)數(shù)是否為2的冪次方?若是,并判斷出來是多少次方?

    本篇文章是對如何判斷一個(gè)數(shù)是否為2的冪次方?若是,并判斷出來是多少次方的實(shí)現(xiàn)方法,進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05

最新評論