1、如何获取本地和远程主机的IP及MAC地址
ipconfig //a 可查看你本地主机所有接口的MAC地址及IP地址,
远程主机如果和你本机IP在同一个LAN内,则先对远程主机进行ping 一下,然后 用arp-a 可以查看的IP 地址对应的MAC地址
2、如何获得本机/远程主机的MAC地址
一:问题:如何获得本机/远程主机的MAC地址,且不受操作系统类型的限制,也不受本机和远程主机是否在同一个LAN中的限制。
二:解决的方法
注:就我所看到的有关“如何获得本机/远程主机的MAC地址”的方法总结如下。
这些方法及程序参考了本站及其他站点,以及用google搜索到的一些牛人的解法和源代码,我在此对他们深表感谢,在此就不说他们的大名了。
我所总结的方法和以及我写的代码一定存在许多不足,敬请各位同志斧正!!!
欢迎讨论!!!如果您认为值得转载的话,欢迎转载。
(一)获得本机的MAC地址
1:在WINDOWS 2000/XP下,使用ipconfig /all ,或者route print ,或者nbtstat 本机的IP地址;
2:在Linux/UNIX/类UNIX下,使用ifconfig;
3:自己写程序/参考牛人的程序实现,其原理可以参考arp协议;
(二)获得同一个LAN中主机的MAC地址
1:先ping目标主机,然后察看arp表,该方法不受操作系统类型的限制;
2:在WINDOWS 2000/XP下,用nbtstat + 目标主机的IP地址;
3:在Linux下,用nbtstat + 目标主机的IP地址。(Linux系统本身没有提供,
但是在本站的“网络编程”版有一段用C语言写的原码,实现了WINDOWS下的nbtstat命令的部分功能。那段原码里面多了一个“}”符号);
注:2,3两种方法都只适合于目标主机是WINDOWS系统,且目标主机的137(135-139)端口是开放的。
4:自己写程序/参考牛人的程序实现,其原理可以参考arp协议;
(三)获得远程主机的MAC地址
1:在WINDOWS 2000/XP下,用nbtstat + 目标主机的IP地址;
2:在Linux下,用nbtstat + 目标主机的IP地址。(Linux系统本身没有提供,
但是在本站的“网络编程”版有一段用C语言写的原码,实现WINDOWS下的nbtstat命令的部分功能。那段原码里面多了一个“}”符号);
注:1,2两种方法都只适合于目标主机是WINDOWS系统,且目标主机的137(135-139)端口是开放的。
3:自己写程序/参考牛人的程序实现
三:我自己现在不是牛人,没有对问题给出一个圆满的解决方案。下面是我参考各位牛人的一些思想和源代码,在Java中通过系统调用实现的一段程序。该程序我已经在WINDOWS XP和RedHat Linux 9.0下测试通过。(要求系统只配了一个以太网卡,如有两块网卡,只能检测出其中的一块网卡的MAC地址,且可能造成显示的MAC/IP地址对与实际的MAC/IP地址对不符。)
3、已知局域网IP地址,如何查主机名
已知ip地址,查主机名最简单的方法就是使用命令,以下是两种方法:
1、使用ping命令加上参数-a的方法反解析IP地址,可以得到主机名。
2、使用nbtstat命令加上-a参数再加上IP地址的方法。
4、得到远程主机IP的方式
netstat
-a
查看一下连接的IP地址不就行了,不过大部分都是那个远程用户的路由地址,你不可能嗅看到他的私有地址的
5、得到远程主机IP的方式
我可以给你比较好的办法,你也可以选择加我,电脑里有一个ping代码和netstat一般玩电脑的人不是学这行的你可能不知道,你安windows键+R会出现运行,输入cmd。然后会出现运行,下来需要的是知道指令。我把指令直接复制给你,你选择自己需要的,不仅仅可以测试对方IP和自己IP还可以测试首发数据,我们今年上课才学的,正好看到。注意看最后一段话就是你要的答案。 1、 通过Ping检测网络故障的典型次序 正常情况下,当我们使用Ping命令来查找问题所在或检验网络运行情况时,我们需要使用许多Ping命令,如果所有都运行正确,我们就可以相信基本的连通性和配置参数没有问题;如果某些Ping命令出现运行故障,它也可以指明到何处去查找问题。下面就给出一个典型的检测次序及对应的可能故障: ·ping 127.0.0.1 这个Ping命令被送到本地计算机的IP软件,该命令永不退出该计算机。如果没有做到这一点,就表示TCP/IP的安装或运行存在某些最基本的问题。·ping 本机IP 这个命令被送到我们计算机所配置的IP地址,我们的计算机始终都应该对该Ping命令作出应答。如果没有,则表示本地配置或安装存在问题。出现此问题时,局域网用户请断开网络电缆,然后重新发送该命令。如果网线断开后本命令正确,则表示另一台计算机可能配置了相同的IP地址。 ·ping 局域网内其他IP 这个命令应该离开我们的计算机,经过网卡及网络电缆到达其他计算机,再返回。收到回送应答表明本地网络中的网卡和载体运行正确。但如果收到0个回送应答,那么表示子网掩码(进行子网分割时,将IP地址的网络部分与主机部分分开的代码)不正确或网卡配置错误或电缆系统有问题。 ·ping 网关IP 这个命令如果应答正确,表示局域网中的网关路由器正在运行并能够作出应答。·ping 远程IP 如果收到4个应答,表示成功的使用了缺省网关。对于拨号上网用户则表示能够成功的访问Internet(但不排除ISP的DNS会有问题)。·ping localhost localhost是个作系统的网络保留名,它是127.0.0.1的别名,每台计算机都应该能够将该名字转换成该地址。如果没有做到这一带内,则表示主机文件(/Windows/host)中存在问题。 ·ping www.xxx.com(如www.yesky.com 天极网) 对这个域名执行Ping www.xxx.com地址,通常是通过DNS服务器。如果这里出现故障,则表示DNS服务器的IP地址配置不正确或DNS服务器有故障(对于拨号上网用户,某些ISP已经不需要设置DNS服务器了)。顺便说一句:我们也可以利用该命令实现域名对IP地址的转换功能。如果上面所列出的所有Ping命令都能正常运行,那么我们对自己的计算机进行本地和远程通信的功能基本上就可以放心了。但是,这些命令的成功并不表示我们所有的网络配置都没有问题,例如,某些子网掩码错误就可能无法用这些方法检测到。2、 Ping命令的常用参数选项·ping IP -t 连续对IP地址执行Ping命令,直到被用户以Ctrl+C中断。·ping IP -l 3000 指定Ping命令中的数据长度为3000字节,而不是缺省的32字节。 ·ping IP -n 执行特定次数的Ping命令。一、 Netstat 命令的使用技巧Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。如果我们的计算机有时候接收到的数据报会导致出错数据删除或故障,我们不必感到奇怪,TCP/IP可以容许这些类型的错误,并能够自动重发数据报。但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正迅速增加,那么我们就应该使用Netstat查一查为什么会出现这些情况了。1、 netstat 的一些常用选项·netstat -s 本选项能够按照各个协议分别显示其统计数据。如果我们的应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么我们就可以用本选项来查看一下所显示的信息。我们需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。·netstat -e本选项用于显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数量和广播的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量。这个选项可以用来统计一些基本的网络流量)。 ·netstat -r 本选项可以显示关于路由表的信息,类似于后面所讲使用route print命令时看到的 信息。除了显示有效路由外,还显示当前有效的连接。·netstat -a 本选项显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请求(LISTENING)的那些连接。·netstat -n 显示所有已建立的有效连接。下面是 netstat 的输出示例:C:\>netstat -e Interface Statistics Received Sent Bytes 399583794047224622 Unicast packets120099131015 Non-unicast packets7579544 3823 Discards 0 0 Errors 0 0 Unknown protocols 363054211 C:\>netstat -a Active Connections Proto Local Address Foreign Address State TCP CORP1:1572 172.16.48.10:nbsession ESTABLISHED TCP CORP1:1589 172.16.48.10:nbsession ESTABLISHED TCP CORP1:1606 172.16.105.245:nbsession ESTABLISHED TCP CORP1:1632 172.16.48.213:nbsession ESTABLISHED TCP CORP1:1659 172.16.48.169:nbsession ESTABLISHED TCP CORP1:1714 172.16.48.203:nbsession ESTABLISHED TCP CORP1:1719 172.16.48.36:nbsession ESTABLISHED TCP CORP1:1241 172.16.48.101:nbsession ESTABLISHED UDP CORP1:1025 *:*UDP CORP1:snmp *:* UDP CORP1:nbname *:* UDP CORP1:nbdatagram *:* UDP CORP1:nbname *:* UDP CORP1:nbdatagram *:* C:\>netstat -s IP Statistics Packets Received = 5378528 Received Header Errors = 738854 Received Address Errors = 23150 Datagrams Forwarded = 0 Unknown Protocols Received = 0 Received Packets Discarded = 0 Received Packets Delivered = 4616524 Output Requests = 132702 Routing Discards = 157 Discarded Output Packets = 0 Output Packet No Route = 0 Reassembly Required = 0 Reassembly Successful = 0 Reassembly Failures = Datagrams Successfully Fragmented = 0 Datagrams Failing Fragmentation = 0 Fragments Created = 0 ICMP Statistics Received Sent Messages 693 4 Errors 0 0 Destination Unreachable 685 0 Time Exceeded0 0 Parameter Problems 0 0 Source Quenches 0 0 Redirects0 0 Echoes 4 0 Echo Replies 0 4 Timestamps 0 0 Timestamp Replies0 0 Address Masks0 0 Address Mask Replies 0 0
TCP Statistics Active Opens = 597 Passive Opens= 135 Failed Connection Attempts = 107 Reset Connections= 91 Current Connections = 8 Segments Received= 106770 Segments Sent= 118431 Segments Retransmitted = 461 UDP Statistics Datagrams Received = 4157136 No Ports = 351928 Receive Errors = 2 Datagrams Sent = 13809 2、Netstat的妙用 经常上网的人一般都使用ICQ的,不知道我们有没有被一些讨厌的人骚扰,想投诉却又不知从和下手?其实,我们只要知道对方的IP,就可以向他所属的ISP投诉了。但怎样才能通过ICQ知道对方的IP呢?如果对方在设置ICQ时选择了不显示IP地址,那我们是无法在信息栏中看到的。其实,我们只需要通过Netstat就可以很方便的做到这一点:当他通过ICQ或其他的工具与我们相连时(例如我们给他发一条ICQ信息或他给我们发一条信息),我们立刻在DOS 命令提示符下输入netstat -n或netstat -a就可以看到对方上网时所用的IP或ISP域名了,甚至连所用Port都完全暴露了
6、C#如何获取远程主机的的IP及MAC地址
||^/// <summary>
/// 判断是否是IP地址格式 0.0.0.0
/// </summary>
/// <param name="str1">待判断的IP地址</param>
/// <returns>true or false</returns>
public static bool IsIPAddress(string str1)
{
if (str1 == null || str1 == string.Empty || str1.Length < 7 || str1.Length > 15) return false;
string regformat = @"^\d{1,3}[\.]\d{1,3}[\.]\d{1,3}[\.]\d{1,3}$";
Regex regex = new Regex(regformat, RegexOptions.IgnoreCase);
return regex.IsMatch(str1);
}
/// <summary>
/// 取得客户端真实IP。如果有代理则取第一个非内网地址
/// </summary>
public static string IPAddress
{
get
{
string result = String.Empty;
result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (result != null && result != String.Empty)
{
//可能有代理
if (result.IndexOf(".") == -1) //没有“.”肯定是非IPv4格式
result = null;
else
{
if (result.IndexOf(",") != -1)
{
//有“,”,估计多个代理。取第一个不是内网的IP。
result = result.Replace(" ", "").Replace("'", "");
string[] temparyip = result.Split(",;".ToCharArray());
for (int i = 0; i < temparyip.Length; i++)
{
if (IsIPAddress(temparyip[i])
&& temparyip[i].Substring(0, 3) != "10."
&& temparyip[i].Substring(0, 7) != "192.168"
&& temparyip[i].Substring(0, 7) != "172.16.")
{
return temparyip[i]; //找到不是内网的地址
}
}
}
else if (IsIPAddress(result)) //代理即是IP格式
return result;
else
result = null; //代理中的内容 非IP,取IP
}
}
string IpAddress = (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null && HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != String.Empty) ? HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] : HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
if (null == result || result == String.Empty)
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
if (result == null || result == String.Empty)
result = HttpContext.Current.Request.UserHostAddress;
return result;
}
}
----------------------------------------------------------------
string ip=IPAddress.ToString(); //进行获取 要挂在服务器上测试(本地IIS也可以)
7、知道远程主机的IP地址 如何获取它的物理地址、主机名、当前登陆的用户及所在的域 求详细解答 谢谢
使用Arp命令,它的使用方法非常的简单。 要想使用Arp命令获取远程主机的MAC地址,只要用命令ping一下远程主机的IP地址,然后用arp -a 或者是 arp -g 就得到一个IP地址1 和Mac地址的对应表,这样,就获得了需要的远程主机的MAC地址
8、知道IP和端口,怎样最简单的入侵到远程主机?
1、首先通过“win+R”键,打开运行对话框,输入gpedit.msc,调出 本地组策略编辑器。
2、选择“计算机”-“Windows设置”-“IP安全策略,在本地计算机”。
3、在右侧窗口中右击鼠标,从弹出对话框中选择“创建IP安全策略”。
4、弹出的安全策略向导,一路点击“下一步”完成策略创建。
5、最后“关闭端口 属性”对话框中去掉“使用 添加向导”的勾,单击“添加”按钮。
6、最后在IP筛选器列表中,输入名称“关闭139端口”,同时去掉“使用添加向导”前面的勾,就完成了。
9、怎么ping远程主机
以windows为例,WIN+R快截键,打开“运行”对话框,输入cmd,打开命令提示符。比如要ping 百度的服务器。如下图所示:
补充:
1、ping命令的原理:源主机(输ping命令的主机)向目标主机发送一个ICMP协议中的echo包;如目标主机存活,就向源主机返回一个ICMP协议的echo-reply包。
2、ping 命令的常用参数
-t Ping 指定的主机,直到停止。
若要查看统计信息并继续操作 – 请键入 Control-Break;
若要停止 – 请键入 Control-C。
-a 将地址解析成主机名。
-n count 要发送的回显请求数。
-l size 发送缓冲区大小。
-f 在数据包中设置“不分段”标志(仅适用于 IPv4)。
-i TTL 生存时间。
-v TOS 服务类型(仅适用于 IPv4。该设置已不赞成使用,且
对 IP 标头中的服务字段类型没有任何影响)。
-r count 记录计数跃点的路由(仅适用于 IPv4)。
-s count 计数跃点的时间戳(仅适用于 IPv4)。
-j host-list 与主机列表一起的松散源路由(仅适用于 IPv4)。
-k host-list 与主机列表一起的严格源路由(仅适用于 IPv4)。
-w timeout 等待每次回复的超时时间(毫秒)。
-R 同样使用路由标头测试反向路由(仅适用于 IPv6)。
-S srcaddr 要使用的源地址。
-4 强制使用 IPv4。
-6 强制使用 IPv6。
10、怎样在自己电脑里查到远程电脑的ip或主机名
1.点击电脑左下角的“Windows按钮”。
2.在Windows按钮中,右键单击“运行”。
3.在操作窗口中,输入“CMD”。
4.在CMD命令窗口中,输入“nbtstat-a+IPtobechecked”,点击ok。
5.在CMD命令窗口中,运行nbtstat-a命令,在远程计算机名表中,可以看到计算机名。