using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Text.RegularExpressions;namespace _09获取本机IP_考虑多网卡_
{class Program{static void Main(string[] args){Console.WriteLine(GetLocalIP());Console.ReadKey();}/// <summary>/// 获取当前使用的IP/// </summary>/// <returns></returns>public static string GetLocalIP(){string result = RunApp("route", "print", true);Match m = Regex.Match(result, @"0.0.0.0\s+0.0.0.0\s+(\d+.\d+.\d+.\d+)\s+(\d+.\d+.\d+.\d+)");if (m.Success){return m.Groups[2].Value;}else{try{System.Net.Sockets.TcpClient c = new System.Net.Sockets.TcpClient();c.Connect("www.baidu.com", 80);string ip = ((System.Net.IPEndPoint)c.Client.LocalEndPoint).Address.ToString();c.Close();return ip;}catch (Exception){return null;}}}/// <summary>/// 运行一个控制台程序并返回其输出参数。/// </summary>/// <param name="filename">程序名</param>/// <param name="arguments">输入参数</param>/// <returns></returns>public static string RunApp(string filename, string arguments, bool recordLog){try{if (recordLog){Trace.WriteLine(filename + " " + arguments);}Process proc = new Process();proc.StartInfo.FileName = filename;proc.StartInfo.CreateNoWindow = true;proc.StartInfo.Arguments = arguments;proc.StartInfo.RedirectStandardOutput = true;proc.StartInfo.UseShellExecute = false;proc.Start();using (System.IO.StreamReader sr = new System.IO.StreamReader(proc.StandardOutput.BaseStream, Encoding.Default)){string txt = sr.ReadToEnd();sr.Close();if (recordLog){Trace.WriteLine(txt);}if (!proc.HasExited){proc.Kill();}return txt;}}catch (Exception ex){Trace.WriteLine(ex);return ex.Message;}}}
}

  

转载于:https://www.cnblogs.com/liqipeng/p/4576161.html

获取本机IP_考虑多网卡的情况相关推荐

  1. 获取本机CPU,硬盘等使用情况

    早上的时候接到主管的一个任务,要获取服务器上的cpu,硬盘, 数据库等 的使用情况,并以邮件的方式发给boss, = =没办法,公司的服务器真是不敢恭维,顺便吐槽一下公司的网速,卡的时候30k左右徘徊 ...

  2. 前端获取本机ip_前端开发者必须明白的浏览器工作原理

    前言 作为前端开发,我们平常跟浏览器打交道的时间也是最多的.在前端面试中,一个较为经典的问题:在浏览器地址中输入url地址,敲回车,发生了什么?浏览器究竟做了什么?相信很多人脑海里都会出现个大概的轮廓 ...

  3. QT 获取本机IP地址 子网掩码 网卡

    QList<QNetworkInterface> interfaceList = QNetworkInterface::allInterfaces();         for (int ...

  4. Shell脚本中获取本机ip地址,Linux获取本地ip地址

    在 Shell 脚本中获取本机 IP 地址可以通过多种方式实现,这里介绍三种常用的方法: 1. 使用 ifconfig 命令获取本机 IP 地址 ifconfig 命令可以获取本机网卡的配置信息,包括 ...

  5. Python获取本机所有网卡的MAC地址

    在拙作<Python可以这样学>(清华大学出版社,2017.2)第297页介绍了一种获取本机网卡MAC地址的方法,不过代码显得稍微有点啰嗦,并且只能获得一块网卡的MAC地址.本文对该内容稍 ...

  6. Qt获取本机IP、MAC地址、子网掩码、网卡名等函数设计

    获取本机IP函数 QString getIp() {QString myIp;QList<QHostAddress> ipList = QNetworkInterface::allAddr ...

  7. 倍福TwinCAT(贝福Beckhoff)基础教程5.1 TwinCAT-4 获取本机名称和网卡名称

    使用命令FB_GetHostName来获取本机名称,返回的是一个字符串 使用命令FB_GetAdaptersInfo获取网卡信息(注意采集到的是一个非常复杂的类型,本身是一个数组,数组的每个元素又包含 ...

  8. Java获取本机名称、网卡名称、IP、MAC

    获取所有IP /*** 获取该主机上所有网卡的ip*/public static ArrayList<String> getAllHostIp(){ArrayList<String& ...

  9. android 获取网卡mac_Android获取本机Mac地址及IP地址方法

    1.Android  获取本机Mac 地址方法: 需要在AndroidManifest.xml文件中添加权限: public String getLocalMacAddress() { WifiMan ...

最新文章

  1. 布隆过滤器+布隆过滤器(Bloom Filter)详解
  2. 编写里Linux命令解释器,linux基础教程试卷及答案
  3. 【Spring】12、Spring Security 四种使用方式
  4. Java数字签名——RSA算法
  5. iOS 无限后台运行
  6. python opencv 从Intel Realsense D435 视频流中读取并显示帧,按下空格将图像保存到指定文件夹,按下回车自动以一定时间间隔保存图像至指定文件夹
  7. 如何通过c语言获取ipv6邻居表,急求在vc++6.0中获取IPV6地址的方法,高手请进,谢谢!!...
  8. ei会议论文录用但不参加会议_会议论文投稿可以不参会吗
  9. CentOs基础操作指令(文件所属管理和权限管理)
  10. 什么是epoll的水平触发与边缘触发?两段代码彻底理解
  11. Canvas 数学、物理、动画学习笔记一
  12. java 修饰符 访问控制符_《Java基础知识》Java访问修饰符(访问控制符)
  13. (转)海外基金销售新模式 机器人投顾与人工相结合
  14. 电磁场与电磁波MIT版笔记
  15. 每天10道Crypto Day3
  16. Dhtmlx Gantt中lightbox如何自定义name值
  17. 湖北飞young使用任意路由器教程
  18. MeteoInfoLab脚本示例:获取气团轨迹每个节点的气象数据
  19. 计算机视觉--CV技术指南文章汇总
  20. RAP2本地开发环境部署

热门文章

  1. linux 安装 mysql 5.6_Linux安装MySQL_5.6
  2. Vue学习(MVVM、入门练习)-学习笔记
  3. Python面向对象、魔法方法
  4. 《剑指offer》左旋转字符串
  5. 判断一个int数组中的元素是否存在重复
  6. 启动数据库报错(2)控制文件丢失
  7. 剑指offer 从头到尾打印链表
  8. 几个SpringCloud常见面试题及答案
  9. 一文让你彻底理解 Java HashMap
  10. linux下安装glibc-2.14,解决“`GLIBC_2.14' not found”问题