当前位置: 首页 > news >正文

C\C++ 使用socket判断ip是否能连通

文章作者:里海
来源网站:https://blog.csdn.net/WangPaiFeiXingYuan


简介:

使用socket判断ip是否能联通

效果:

      

代码:

#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); // 创建一个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)); // 连接服务器  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(); // 记录开始时间  if (canConnectToRouter(ip.c_str()))std::cout << "InCompany\t";elsestd::cout << "NotInCompany\t";auto end = chrono::steady_clock::now(); // 记录结束时间  auto duration = chrono::duration_cast<chrono::milliseconds>(end - start); // 计算执行时间,单位为毫秒  cout << "耗时:" << duration.count() << "毫秒" << endl;}cin.get();
}

http://www.lryc.cn/news/94971.html

相关文章:

  • 数学建模-相关系数
  • Ubuntu下安装、配置及重装CUDA教程
  • 自学网络安全(黑客)为什么火了?
  • Android S 修改关于手机的logo
  • Mysql 备份与还原
  • Cadence PCB 仿真Model Integrity专题
  • 记一次阿里云被挖矿处理记录
  • Linux系统使用(超详细)
  • 【问题总结】Docker环境下备份和恢复postgresql数据库
  • 《TCP IP网络编程》第六章
  • 如何学习java
  • RabbitMQ实现六类工作模式
  • all in one (群辉、软路由、win/linux)折腾日记
  • 【Redis】2、Redis应用之【根据 Session 和 Redis 进行登录校验和发送短信验证码】
  • MiniGPT4系列之二推理篇命令行方式:在RTX-3090 Ubuntu服务器推理详解
  • Android TvSettings Bug: 密码框无法点击唤起输入法
  • Windows, MacOS还是Linux好?
  • Gateway自定义过滤器——全局过滤器
  • Android App的几个核心概念
  • window10安装telnet
  • 大厂sql真题讲解(黑马)
  • SpringBoot整合EasyExcel实现读操作
  • go mod 设置国内源 windows 环境 win10
  • 智能决策支持系统实现的关键技术分析
  • OSS对象存储后端实现+Vue实现图片上传【基于若依管理系统开发】
  • 人工智能学习目录
  • Vue单页面实现el-tree el-breadcrumb功能、el-tree右键点击树节点展示菜单功能、树节点编辑节点字段名称功能
  • C++核心编程之函数高级使用
  • 如何创建智能合约游戏系统
  • 如何用rust实现一个异步channel