如何获取所有连通的内网IP地址

搬砖的码农 2014-03-08 10:56:45
比如有几台终端机忘记了IP地址,怎么获取和本机相连的所有终端IP地址
...全文
548 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
尽在云中 2014-03-18
  • 打赏
  • 举报
回复
各位大神,求救: 我想找到内网的出口IP,网上给的方案都是访问下面的网站,获取网站的内容从而解析出IP。但是我得到的结果却是html的代码,该怎样改? public static string GetConnectNetAddress() { string strUrl = "http://www.ip138.com/ip2city.asp"; //获得IP的网址 Uri uri = new Uri(strUrl); WebRequest webreq = WebRequest.Create(uri); Stream s = webreq.GetResponse().GetResponseStream(); StreamReader sr = new StreamReader(s, Encoding.Default); string all = sr.ReadToEnd(); //读取网站返回的数据 格式:您的IP地址是:[x.x.x.x] int i = all.IndexOf("[") + 1; string tempip = all.Substring(i, 15); string ip = tempip.Replace("]", "").Replace(" ", "").Replace("<", ""); return ip; } 下面是我读取的网页结果: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>IP地址查询</title> <meta http-equiv="Refresh" content="0; url=http://iframe.ip138.com/ic.asp" /> </head> <body> <script type="text/javascript"> location.href="http://iframe.ip138.com/ic.asp"; </script> <a href="http://www.ip138.com/ips138.asp">IP地址所在地查询</a> </body> </html>
jy251 2014-03-16
  • 打赏
  • 举报
回复
额,其实如果你懂一点交换机的东西的话,又恰好你们那里用的网管交换机,那么就用socket通讯登陆交换机,查一下ARP,这是最简单的办法了,但是要有一些特定条件
jy251 2014-03-16
  • 打赏
  • 举报
回复
哦,你想做个类似网管的工具??以前我看过一个东西的文档,但是时间有点久了,忘记差不多了,就记得名字叫wincap,也许对你有帮助 rawsocket也可以,但是要你自己判断IP地址段,麻烦
搬砖的码农 2014-03-14
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
先帮忙解决下mysql备份后还原乱码的问题
有帖:http://bbs.csdn.net/topics/390729152?page=1#post-396930058
非常感谢,这个比较急
huwei001982 2014-03-10
  • 打赏
  • 举报
回复
COLOR 0A CLS @ECHO Off Title 查询局域网内在线电脑IP :send @ECHO off&setlocal enabledelayedexpansion ECHO 正在获取本机的IP地址,请稍等... for /f "tokens=3 skip=2 delims=: " %%i in ('nbtstat -n') do ( set "IP=%%i" set IP=!IP:~1,-1! ECHO 本机IP为:!IP! goto :next ) :next for /f "delims=. tokens=1,2,3,4" %%i in ("%IP%") do set range=%%i.%%j.%%k ECHO.&ECHO 正在获取本网段内的其它在线计算机名,请稍等... ECHO 本网段【%range%.*】内的计算机有: for /f "delims=" %%i in ('net view') do ( set "var=%%i" ::查询在线计算机名称 if "!var:~0,2!"=="\\" ( set "var=!var:~2!" ECHO !var! ping -n 1 !var!>nul )) ECHO. ECHO 正在获取本网段内的其它在线计算机IP,请稍等... for /f "skip=3 tokens=1,* delims= " %%i in ('arp -a') do ECHO IP: %%i 正在使用 ECHO. ECHO 查询完毕,按任意键退出... pause>nul 给你一段脚本,存为 bat 后执行就行了
  • 打赏
  • 举报
回复
就算是类似“飞鸽传书”那种根本不能跨网段的小程序吧,实际上每一个人客户端程序内部都有一个服务器功能,就是监听广播消息。当一个客户端上线时,它会向广播(或者组播)地址发送一个消息,于是凡是收到这个udp消息的程序就都知道对方的IP了。
  • 打赏
  • 举报
回复
引用 6 楼 zhurcn 的回复:
[quote=引用 5 楼 sp1234 的回复:] “终端机”? 如果你开发了一个服务器程序,你自己然就能在程序里获取每一个客户端的IP地址。 除非你没有开发服务器程序,而只是想在局域网上盗取别人的信息。
我这是在PC端开发的程序运行后的exe放到终端运行,程序里有个更改IP表的,不同的机对应不同的IP地址,然后机与机之间可根据IP互相通信(有上下级),是通过机器里的一个IPtab.dat文件转换的。由于操作人不知道流程,改了IPtab.dat文件,又复位了系统,现在不知道机的IP地址[/quote] 这种时候你直接打电话问操作人员还来的快,你连他改了什么IP都不知道,又怎么确定他改的IP就能ping通你的?就算能ping 通,除非你的机器和他的那台机器接在同个路由器下,可以通过路由器功能查看以外也没别的办法,单靠主机,除非像sp1234大神说的那样你自己做了服务端,否则你不可能得到“能和你ping通”的机器的IP。
  • 打赏
  • 举报
回复
或许你认为IP就是静态设置? 那么我可以告诉你,任何一个服务程序(处理客户端连入),都能够在接受到连接信息时得到客户端的IP。不管它的文件里配置的是什么。所以只要在你的上位机程序里,打印一下所有客户端的IP就行了。
  • 打赏
  • 举报
回复
上位机程序里当然知道所有下位机的IP。这个上位机程序是你做的吗?
搬砖的码农 2014-03-08
  • 打赏
  • 举报
回复
引用 5 楼 sp1234 的回复:
“终端机”? 如果你开发了一个服务器程序,你自己然就能在程序里获取每一个客户端的IP地址。 除非你没有开发服务器程序,而只是想在局域网上盗取别人的信息。
我这是在PC端开发的程序运行后的exe放到终端运行,程序里有个更改IP表的,不同的机对应不同的IP地址,然后机与机之间可根据IP互相通信(有上下级),是通过机器里的一个IPtab.dat文件转换的。由于操作人不知道流程,改了IPtab.dat文件,又复位了系统,现在不知道机的IP地址
  • 打赏
  • 举报
回复
“终端机”? 如果你开发了一个服务器程序,你自己然就能在程序里获取每一个客户端的IP地址。 除非你没有开发服务器程序,而只是想在局域网上盗取别人的信息。
搬砖的码农 2014-03-08
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
能拚通但是不知道ip?
终端机被乱改IP,结果不知道是什么地址了,现在想要个能获取所有相连的IP地址方法,求教
搬砖的码农 2014-03-08
  • 打赏
  • 举报
回复
终端机被乱改IP,结果不知道是什么地址了,现在想要个能获取所有相连的IP地址方法,求教
  • 打赏
  • 举报
回复
能拚通但是不知道ip?
搬砖的码农 2014-03-08
  • 打赏
  • 举报
回复
是连通,能ping通的机的IP地址,不是‘联通’
ysd_xwl 2014-03-08
  • 打赏
  • 举报
回复
TcpClient client; NetworkStream netStream;使用这两个类

110,570

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧