C++ 网络连通性检测的实现方法

C++ 网络连通性检测的实现方法

有时程序需要保持和某个指定网络的连通,有人的情况下我们直接用ping命令查看即可,然而程序自身检测会稍微麻烦一点。

实现思路如下:

用程序打开控制台->运行ping命令,并指定控制台返回值写入到文件中->分析文件,得到ping命令返回状态->得到网络连通情况

代码如下:

#include <windows.h>
#include <stdio.h>
#include <string>
using namespace std; 

bool AnalysisFile()
{
  bool rState;//返回状态
  FILE *file;
  char ln[80];
  fopen_s(&file, "returnpingdata.txt", "r"); 

  fgets(ln, 80, file);//读入空行,舍弃
  fgets(ln, 80, file);//读入ping信息,舍弃
  fgets(ln, 80, file);//读入ping对象返回值,用来分析 

  string data = ln;
  int iPos = data.find("=");
  data = data.substr(iPos+1,3);//截取字符串返回字节数
  int n = atoi(data.c_str());
  rState = n > 0;
  fclose(file);
  return rState;
}
void main()
{
  // -n 1指定发送1位数据,-w
  // 1000指定超过1000ms为超时
  // >returnpingdata.txt指定命令行返回值输出到returnpingdata.txt文件中
  char *cmdstr= "cmd /c ping www.baidu.com -n 1 -w 1000 >returnpingdata.txt";
  WinExec(cmdstr, SW_HIDE);
  Sleep(1000);//等待1000ms
  bool returndata = AnalysisFile();//分析命令行返回文件,得到网络连接情况
  if (returndata==true)
  {
    printf("网络连接成功\n");
  }
  else
  {
    printf("网络连接失败\n");
  }
  getchar();
}

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

时间: 2017-09-27

C++中Socket网络编程实例详解

C++中Socket网络编程实例详解 现在几乎所有C/C++的后台程序都需要进行网络通讯,其实现方法无非有两种:使用系统底层socket或者使用已有的封装好的网络库.本文对两种方式进行总结,并介绍一个轻量级的网络通讯库ZeroMQ.  1.基本的Scoket编程 关于基本的scoket编程网络上已有很多资料,作者在这里引用一篇文章中的内容进行简要说明. 基于socket编程,基本上就是以下6个步骤: 1.socket()函数 2.bind()函数 3.listen().connect()函数 4

C++ 网络编程 总结

第一次用C++写程序,对C++ 只是菜鸟级别的,倒是对C#很熟悉.两者有很大的相似性.但也有不同. 首先写了一个网络通讯用的小的MFC程序.发现 (1)MFC写界面真的好麻烦呀.用C#写的tab 分分钟搞定的事,用C++害得我写了两天.关键是不熟练. 还有list control 控件的图标显示.  真是很麻烦 不过,由于最后的 detch() 函数执行后,就真正显示出来了.这些具体的小细节,一般在 书上都没有写. (2)用C++ 写类的特征,基本上与C#是相似的. 说一下网络编程的问题吧 1\

C++设置系统时间及系统时间网络更新的方法

本文实例讲述了C++设置系统时间及系统时间网络更新的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: //根据返回的时间设置系统时间 void setTimeFromTP(ULONG ulTime) {      FILETIME ft;      SYSTEMTIME st;        //将基准时间转换成windows文件时间      st.wYear = 1900;      st.wMonth = 1;      st.wDay = 1;      st.wHo

C++实现获取IP、子网掩码、网关、DNS等本机网络参数的方法

本文以一个完整实例形式介绍了C++实现获取IP.子网掩码.网关.DNS等本机网络参数的方法,供大家参考,具体的完整实例如下: #pragma comment(lib,"Ws2_32.lib") #include <Iphlpapi.h> #pragma comment(lib, "Iphlpapi.lib") using namespace std; typedef struct tagNetworkCfg { char szIP[18]; char s

C#实现一键换IP、重置DNS、网关及掩码的方法

本文实例实现了C#一键换IP.重置DNS.网关及掩码的功能,具体实现的功能为在程序界面窗口中设置ip地址和子网掩码,设置网关地址,设置DNS,并且在设置过程中程序将判断如果没有启用IP设置的网络设备则跳过,重置DNS为空,并开启DHCP. 主要功能代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; us

自定义配置网络ip、网关、dns的批处理文件

自定义配置网络ip.网关.dns.bat 复制代码 代码如下: @echo off set slection1= set/p slection1=请输入IP地址: netsh interface ip set address name="本地连接" source=static addr=%slection1% mask=255.255.255.0 set slection2= set/p slection2=请输入网关地址: netsh interface ip set address

使用批处理命令设置windows系统的ip地址和dns附图

找到对应的网卡名称 使用命令:ipconfig 复制代码 代码如下: ipconfig/all Windows IP Configuration Host Name . . . . . . . . . . . . : D501-4-3 Primary Dns Suffix . . . . . . . : Node Type . . . . . . . . . . . . : Unknown IP Routing Enabled. . . . . . . . : No WINS Proxy Ena

Linux下Python获取IP地址的代码

<lnmp一键安装包>中需要获取ip地址,有2种情况:如果服务器只有私网地址没有公网地址,这个时候获取的IP(即私网地址)不能用来判断服务器的位置,于是取其网关地址用来判断服务器在国内还是国外(脚本为了使国内用户快速下载,yum源自动设置成163,这个情况就需要获取网关地址):如果服务器有公网地址,这时获取的IP地址可用来直接判断服务器地理位置. 获取服务器IP,如果有公网地址就取公网地址,没有公网地址就取私网网址 下面是之前我用shell来获取本地IP脚本: IP=`ifconfig | g

详解如何设置CentOS 7开机自动获取IP地址

本例中以CentOS 7举例说明如何设置Linux开机自动获取IP地址和设置固定IP地址. 自动获取动态IP地址 1.输入"ip addr"并按回车键确定,发现无法获取IP(CentOS 7默认没有ifconfig命令),记录下网卡名称(本例中为ens33,下图黄色框内). 2.输入"cd /etc/sysconfig/network-scripts/"按回车键确定,继续输入"ls"按回车键查看文件. 3.输入"vi ifcfg-ens

PHP基于新浪IP库获取IP详细地址的方法

本文实例讲述了PHP基于新浪IP库获取IP详细地址的方法.分享给大家供大家参考,具体如下: <?php class Tool{ /** * 获取IP的归属地( 新浪IP库 ) * * @param $ip String IP地址:112.65.102.16 * @return Array */ static public function getIpCity($ip) { $ip = preg_replace("/\s/","",preg_replace(&q

Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】

本文实例讲述了Python2.7基于淘宝接口获取IP地址所在地理位置的方法.分享给大家供大家参考,具体如下: #!/usr/bin/python import sys, os, urllib2, json def get_ip_area(ip): try: apiurl = "http://ip.taobao.com/service/getIpInfo.php?ip=%s" %ip content = urllib2.urlopen(apiurl).read() data = json

C#编程获取IP地址的方法示例

本文实例讲述了C#编程获取IP地址的方法.分享给大家供大家参考,具体如下: 1.获取客户端IP /// <summary> /// 获取客户端Ip /// </summary> /// <returns></returns> public String GetClientIp() { String clientIP = ""; if (System.Web.HttpContext.Current != null) { clientIP =

java获取ip地址与网络接口的方法示例

java.net包 大家应该都知道,网络相关对象在java.net包中,Java net包下的类如下: 1.获取主机对象InetAddress //获取本地主机对象 InetAddress host = InetAddress.getLocalHost(); //根据ip地址或主机名获取主机对象,以主机名获取主机时需要DNS解析 InetAddress host = InetAddress.getByName("192.168.100.124"); InetAddress host =