C# ping RemoteIP -S LocalIp 5C

目前写个小程式电脑多张网卡,确认到底是哪张网卡ping出去的.
比如远端ip:192.168.24.224,本机ip:192.168.24.130。Cmd指令:C:>ping 192.168.24.224 -S 192.168.24.130
用C# ping类如何实现?
图片说明

4个回答

ping -S 192.168.24.130 192.168.24.224
S是大写,IP先是本机IP,后是目标IP

   问题使用Process的方式解决了,但结果不是很满意,代码以下,
        如有通过C# Ping类完成的大神请分享您的成果.

        public bool PingFunction(string remoteIp, string localIp, ListBox r)
    {
        Process p = new Process();
        p.StartInfo.FileName = "cmd.exe";//设定程序名
        p.StartInfo.UseShellExecute = false; //关闭Shell的使用
        p.StartInfo.RedirectStandardInput = true;//重定向标准输入
        p.StartInfo.RedirectStandardOutput = true;//重定向标准输出
        p.StartInfo.RedirectStandardError = true;//重定向错误输出
        p.StartInfo.CreateNoWindow = true;//设置不显示窗口
        p.Start();
        p.StandardInput.WriteLine("chcp 437"); //让Cmd中显示英文
        p.StandardInput.WriteLine("arp -d\r\narp -d\r\narp -d\r\n");
        p.StandardInput.WriteLine("ping " + remoteIp + " -S " + localIp);
        p.StandardInput.WriteLine("exit");
        string strRst = p.StandardOutput.ReadToEnd();
        p.Close();
        bool isOk = false;
        string temp = "";
        if (strRst.Contains("(0% loss)") || strRst.Contains("(0% 丢失)"))
        { 
            strRst = strRst.Substring(strRst.IndexOf("Reply from", StringComparison.Ordinal));
            temp = strRst.Substring(0, strRst.IndexOf("\r\n", StringComparison.Ordinal));
            isOk = true;
        }
        else if (strRst.Contains("Destination host unreachable."))
        {
            temp = "Destination host unreachable.";
        }
        else if (strRst.Contains("Request timed out."))
        {
            temp = "Request timed out.";
        }
        else if (strRst.Contains("Unknown host"))
        {
            temp = "Unknown host.";
        }
        else
        {
            temp = "Unknown  Error.";
        }

        r.Invoke(new Action(() =>
        {
            r.Items.Add(temp + Environment.NewLine);
            r.ForeColor = Color.Green;
        }));
        return isOk;
    }

lw8014
威威当爸了 r.Invoke(new Action(() => { r.Items.Add(temp); r.SelectedIndex = r.Items.Count - 1; r.ForeColor = isOk ? Color.Green : Color.Red; }));最后的地方修改下
一年多之前 回复

//Ping 实例对象;
Ping pingSender = new Ping();
//ping选项;
PingOptions options = new PingOptions();
options.DontFragment = true;
string data = "ping test data";
byte[] buf = Encoding.ASCII.GetBytes(data);
//调用同步send方法发送数据,结果存入reply对象;
PingReply reply = pingSender.Send("www.baidu.com", 120, buf, options);

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
winsock的LocalIP问题,怎么样自动刷新localIP
比如,command1的事件是print winsock1.localip,当我连上网后,按一下command1,窗体显示了,当前IP,然后断线(注,我用的是猫,每次上线IP是不一样的),再拨号上网,这时再按command1显示的还是前一次的IP,怎么样能够让它自动刷新,显示新的IP啊???
winsock获取LocalIP问题
用winsock获取本机的局域网ip,第一次获取LocalIP是正确的(192.168.1.99),以后再刷新就变成了127.0.0.1,请问是怎么回事?
C#语言的Ping程序
WinForm界面,带-t,-n参数 如-t www.baidu.com 按Ctrl+C停止发送数据包
ping 方法,C#
ping 方法,c# VC 方法,功能在项目中通过.
C#异步多线程ping
[code=c]rn private void button3_Click(object sender, EventArgs e)rn rn rn //IPAddress address = IPAddress.Parse(Convert.ToString(dataGridView1.Rows[i].Cells[1].Value));rn Thread thread = new Thread(new ThreadStart(_pingThread));rn thread.IsBackground = true;rn thread.Start();rn rn rnrnrn private void _pingThread()rn rnrn Ping ping = new Ping();rn ping.PingCompleted += new PingCompletedEventHandler(_myPing_PingCompleted); rnrn for(int i = 0; i < dataGridView1.Rows.Count; i++)rn rn if (Convert.ToString(dataGridView1.Rows[i].Cells[1].Value) != "")rn rn string _ipAddress = Convert.ToString(dataGridView1.Rows[i].Cells[1].Value);rn //每一行的datagridview中的第二格都有IP地址rn PingReply result = ping.Send(_ipAddress);rnrn if (result.Status != IPStatus.Success)rn rn dataGridView1.Rows[i].Cells[3].Value = result.RoundtripTime.ToString(); rn rn rn rnrnrn rn rn[/code]rnrn求指导,我现在这个是多线程ping了吧,为啥我这个ping多个地址很慢的,,,别人做出的程序ping多个地址很快。。而我的没效率啊。。求改进。。。
C# ping的问题 请教
我用操作系统自带的cmd—>ping命令可以ping通局域网内同一网段内的一些机器,但是我用C#实现ICMP的方法却ping不rnrn到,返回提示信息 Host not found,不知道这是何种原因呐???rn rn 知道的告诉一下,谢谢。
c# Ping程序
C# ping程序测试网络连通性,测试局域网电脑在线数目,网卡地址
ping程序设计(c#编写)
本程序是由C#编写的,可提供计算机网络的学生和爱好者参考,里面包含有实验报告!希望大家一起交流啦~哈哈....
C# Ping 简单使用
编程过程中,有时候需要判断主机是否在线,最简单的方法就是使用Windows的Ping命令看看能否ping通。看到网上很多文章,说用C#去调用windows的ping.exe,然后解析返回的字符串。我觉得这种方式太麻烦了,就做一下简单判断,不想弄那么麻烦。 查了一下,C#专门提供了一个Ping类,与Windows下的ping命令类似: 命令空间: System.Net.Netwo
C#(sharp) Ping程序
C#.net编写,自定义UDP包结构,发送到指定IP,并接收响应,统计有关信息.
C#调用ping
C#动态调用ping 并获得返回结果,代码可以直接使用,粘贴即可
基于C#实现的Ping
用C#简单实现ping命令,输入一个网站地址,或者IP,就可以进行ping
C# Ping程序代码
自己编写的一个可视化的Ping程序,感兴趣的可以参考下
ping的C#代码和图形化界面
用C#实现ping的功能,内有图形化界面,供大家交流
C# PIng IP
C# PIng IP
ping站点c#源码
ping站点ping站点
求ping的c#源码
求ping的c#源码。rnrn我在csharphelp找了一个,不能够编译。哪个哥哥手头上有现成的?
wince c# ping代码
自测通过的,在6410开发板上运行成功,可以ping通,并显示响应时间
resin日志分析反向代理下获取remoteIp (转)
http://yhjhappy234.blog.163.com/blog/static/31632832201010296553887/resin配置文件定义access-log的格式中,%h得到的是本地IP,可通过%{X-Real-IP}i %{X-Forwarded-For}获取经过ngix代理后的真实IP,其中ngix的配置如下:  &amp;lt;access-log path=&quot;/home/yi...
Powershell为接收连接器批量添加RemoteIP地址
运行环境:Exchange 2013/2016 添加之前先对现有的配置进行导出备份 $FormatEnumerationLimit = -1 Get-ExchangeServer -Identity ex1601 | Get-ReceiveConnector | select server,remoteiprang es,identity | ft -Wrap 然后获取要添加IP地址的连接器信息...
C# Ping工具
C# Ping工具 通过该工具可以多个地点Ping服务器以检测服务器响应速度,同时也可以测试网站的响应速度,解析时间,服务器连接时间,下载速度
C# Ping 简单使用 (超时)
C# Ping 简单使用 (含超时处理) 说明,使用ping工具 1.可以用来查询域名\主机是否可以访问 2.可以用来查询域名\主机对应的ip地址 一、使用Ping类,效率比较高,相应快 程序集 System 命名空间:namespace System.Net.NetworkInformation class Program { static void...
C#实现PING的功能
C#实现PING的功能 让 你 成为WINDOWS编程高手,慢慢的积累~
C# 简单实现Ping操作
C# 简单实现Ping操作,实际应用的资源
ping IP 的C#代码
此代码运行后,可以用来轻易的去ping通别人的代码,非常方便好用
C# PING 图形界面
图形界面的PING程序,可填写ip或域名,c#实现,可带选项
.NET C# ping 服务器
检测服务器是否正常运作,能不能ping通。多线程定时检测。 数据库 IPTEST 字段:ID IP STATE
C# ping 测试网速
using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; using System.Text.RegularExpressions; namespace alonesail.PingEx { public static class Ping {
Ping C# 源码
C@ Ping ICMP 协议 public string PingHost(string host) { // 声明 IPHostEntry IPHostEntry ServerHE, fromHE; int nBytes = 0; int dwStart = 0, dwStop = 0; //初始化ICMP的Socket Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Icmp); socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000); // 得到Server EndPoint try { ServerHE = Dns.GetHostByName(host); } catch (Exception) { return "没有发现主机"; } // 把 Server IP_EndPoint转换成EndPoint IPEndPoint ipepServer = new IPEndPoint(ServerHE.AddressList[0], 0); EndPoint epServer = (ipepServer); // 设定客户机的接收Endpoint fromHE = Dns.GetHostByName(Dns.GetHostName()); IPEndPoint ipEndPointFrom = new IPEndPoint(fromHE.AddressList[0], 0); EndPoint EndPointFrom = (ipEndPointFrom); int PacketSize = 0; IcmpPacket packet = new IcmpPacket();
ppp指定localip后不能协商成功
ppp指定localip后不能协商成功rnoption文件配置如下:rn/dev/usb/tts/0rn921600rnnopcomprndebugrncrtsctsrnlocalrnusepeerdnsrnnoauthrnnodetachrnconnect "chat -s -S -V -t 5 -f /tmp/dial.chat 2>>/dev/tts/0"rnmtu "1500"rnmru "1500"rnlcp-echo-interval "10"rnlcp-echo-failure "5"rnnoipdefaultrn192.168.4.5:0.0.0.0rnrn调试信息:rnrnsent [IPCP ConfReq id=0x1 ]rnrcvd [LCP DiscReq id=0x2 magic=0xae311adf]rnrcvd [LCP EchoRep id=0x0 magic=0xae311adf ae 31 1a df]rnrcvd [LCP ProtRej id=0x3 80 fd 01 01 00 0f 1a 04 78 00 18 04 78 00 15 03 2f]rnrcvd [IPCP ConfNak id=0x1 ]rnsent [IPCP ConfReq id=0x2 ]rnrcvd [IPCP ConfNak id=0x2 ]rnsent [IPCP ConfReq id=0x3 ]rnrcvd [IPCP ConfNak id=0x3 ]rnsent [IPCP ConfReq id=0x4 ]rnrcvd [IPCP ConfNak id=0x4 ]rnsent [IPCP ConfReq id=0x5 ]rnrcvd [IPCP ConfNak id=0x5 ]rnsent [IPCP ConfReq id=0x6 ]rnrcvd [IPCP ConfNak id=0x6 ]rnsent [IPCP ConfReq id=0x7 ]rnrcvd [IPCP ConfNak id=0x7 ]rnsent [IPCP ConfReq id=0x8 ]rnrcvd [IPCP ConfNak id=0x8 ]rnsent [IPCP ConfReq id=0x9 ]rnrcvd [IPCP ConfReq id=0x0]rnipcp: returning Configure-NAKrnsent [IPCP ConfNak id=0x0 ]rnrcvd [IPCP ConfRej id=0x9 ]rnsent [IPCP ConfReq id=0xa ]rnrcvd [IPCP ConfReq id=0x1]rnipcp: returning Configure-ACKrnsent [IPCP ConfAck id=0x1]rnrcvd [IPCP ConfNak id=0xa ]rnsent [IPCP ConfReq id=0xb ]rnrcvd [IPCP ConfNak id=0xb ]rnsent [IPCP ConfReq id=0xc ]rnrcvd [IPCP ConfNak id=0xc ]rnsent [IPCP ConfReq id=0xd ]rnrcvd [IPCP ConfRej id=0xd ]rnsent [IPCP ConfReq id=0xe ]rnrcvd [IPCP ConfRej id=0xe ]rnsent [IPCP ConfReq id=0xf ]rnrcvd [IPCP ConfRej id=0xf ]rnsent [IPCP ConfReq id=0x10 ]rnrcvd [IPCP ConfRej id=0x10 ]rnsent [IPCP ConfReq id=0x11 ]rnrcvd [IPCP ConfRej id=0x11 ]rnsent [IPCP ConfReq id=0x12 ]rnrcvd [IPCP ConfRej id=0x12 ]rn……rnrn那位帮解答下?rn
Ping(s) a computer and returns the results.
Ping(s) a computer and returns the results.
怎样在 L/S 中调用 PING 命令?
怎样在 L/S 中调用 PING 命令?
c#开发实例-应用程序ping
互联网应用程序开发,应用程序ping在VS2005中的实现代码。
C# ping ip 程序 实用
很实用的程序测试网络连接状态的C#程序,简单易懂
wince C# 实现ping功能
使用iphlpapi.dll中的函数:IcmpSendEchorn定义结构体rn[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]rn private struct ICMP_OPTIONSrn rn public Byte Ttl;rn public Byte Tos;rn public Byte Flags;rn public Byte OptionsSize;rn public IntPtr OptionsData;rn ;rnrn [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]rn private struct ICMP_ECHO_REPLYrn rn public int Address;rn public int Status;rn public int RoundTripTime;rn public Int16 DataSize;rn public Int16 Reserved;rn public IntPtr DataPtr;rn public ICMP_OPTIONS Options;rn [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 250)]rn public String Data;rn rn接收返回信息。rniReplies = IcmpSendEcho(ICMPHandle, iIP, sData, sData.Length, ref oICMPOptions, ref ICMPReply, Marshal.SizeOf(ICMPReply), 30);rn发送ping数据,读取ICMPReply中的status判断发送是否成功并显示结果:rn if (ICMPReply.Status == 0)rn rn this.textBox1.Text += "Ping success!" + "\r\n";rn rn elsern rn this.textBox1.Text += "Ping failed!" + "\r\n";rn rn现在遇到的问题是,设备支持GPRS和Wifi,当关闭Wifi时,会显示ping全部成功,打开wifi时,就显示ping全部失败,求解。
C# ping 类的内存泄露问题
代码如下:rnrnpublic class MyPing : Pingrnrn    public void PingCompletedCallBack(object sender, PingCompletedEventArgs e)rn rn    rn        rn       [color=#FF0000] using (sender as Ping)[/color] rn       rn        rn           if (e.Reply.Status == IPStatus.Success)rn   rn           rn        rn               Console.WriteLine("Address: 0", e.Reply.Address.ToString());rn   rn           rn      rn        rn        (sender as IDisposable).Dispose();rn   rn     rnrn   rnclass Programrn  rnrn      rn  static void Main(string[] args)rn   rn  rn        rn    string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";rn   rn    byte[] buffer = Encoding.ASCII.GetBytes(data);rn   rn    int timeout = 1000;rn      rn    for (int j = 0; j< 1000; j++)rn   rn    rn           rn       for (int i = 0; i < 1000; i++)rn    rn       rn               rn          MyPing pingSender = new MyPing();rn    rn          tryrn           rn          rn              pingSender.PingCompleted += new PingCompletedEventHandler(pingSender.PingCompletedCallBack);rn              pingSender.SendAsync(args[0], timeout, buffer, null);rn rn          rn        rn          catch ( Exception )rn              rn          rn                     rn              ((IDisposable)pingSender).Dispose();rn         rn          rn          rn       rn         rn    rn        rn  rn  rnrn运行的系统为win7rn现象是内存不断增长,最后出现内存耗尽,出现异常。rn以下的这个帖子我已经看过,就是按照上面的说法使用了using 语句,可是问题依旧。rnhttp://www.cnblogs.com/Gildor/archive/2009/09/08/1562225.html?login=1#commentformrn在资源管理器中看多句柄数不断增长,可能还是内部有非托管资源没有回收导致的。rn谁还有解决办法?rnrn
c#下实现ping操作3
这里333我写的是一个窗体程序。首先添加textbox,listbox,button控件,其中textbox录入域名或IP,listbox显示结果.
c# 做的ping程序源码
是自己用c#做的一个简单的小程序(windows下的ping)
C#多线程ping和DOS工具
本程序采用VS2010软件开发,用的是C#语言,提供源码,主要功能如下 1, 可持续ping 1个IP地址或多个IP地址,可选择记录在指定的文件或自动生成文件记录或不记录。可查看IP什么时候丢包。保存的文件的路径也会做相应的记录,下次重启也不会丢失 2 可对某一网段的IP地址利用ping协议测试连通性,如192.168.1.1 - 192.168.1.254(处理的IP数254) 或者 192.168.1.1 - 192.168.254.244(像这处理的IP数6万多个) 1秒钟大约可以测出50个IP地址的连通性,用的是多线程技术,如果用单线就太慢了,对ping完的结果做了相应的处理 3 调用了系统的DOS程序,可以处理相应的DOS命令,如"ipconig /all,ping www.baidu.com" 程序也内置了简单的几个DOS命令做演示,同样也方便操作 4 对输入的内容可提取所有的IP地址, 并对测出所有提取IP地址的连通性, 通不与不通的IP地址将以不同的颜色显示并做相应的处理。 也可提取有重叠的IP地址 5 调用了系统的DOS程序,可以处理相应的DOS命令,如"ipcongi /all,ping www.baidu.com" 程序也内置了简单的几个DOS命令做演示,同样也方便操作 6 本程序还提供了相关C#的经典视频教程链接!欢迎下载!
在线ping代码(asp.net c#)
在线ping功能,可以用来查看网站服务器连接到其它IP的速度。
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview