网络嗅探器的设计与实现 全代码 最简单的就行 最好用java 可以用的加分

网络嗅探器的设计与实现 全代码 最简单的就行 最好用java 可以用的加分,第1张

主要原理是利用网卡的混杂模式,和以太网自身的特点进行的。

java写的话用 JPACAP

Jpcap是一个能够抓取与发送网络数据包的Java组件。可以使用Jpcap从一个网络接口获取数据包,然后在Java中对它们进行分析和显示。同样也可以通过一个网络接口发送任意数据包。Jpcap当前能够 捕获以太网,IPv4,IPv6,ARP/RARP,TCP,UDP和ICMPv4数据包。

Jpcap实际上并非一个真正去实现对数据链路层的控制,而是一个中间件,Jpcap调用wincap/libcap,而给Java语言提供一个公共的接口,从而实现了平台无关性。在官方网站上声明,Jpcap支持FreeBSD3x,Linux RedHat61, Fedora Core4,Solaris,and Microsoft Windows 2000/XP等系统。

Jpcap的整个结构大体上跟wincap/libpcap是很相像的,例如NetworkInterface类对应wincap的 typedef struct_ADAPTER ADAPTER,getDeviceList()对应pcap_findalldevs()等等。

Jpcap主要的类有如下几个:

1.NetworkInterface

该类的每一个实例代表一个网络设备,一般就是网卡。这个类只有一些数据成员,除了继承自javalangObject的基本方法以外,没有定义其它方法。

2.JpcapCaptor

该类提供了一系列静态方法实现一些基本的功能。该类一个实例代表建立了一个与指定设备的链接,可以通过该类的实例来控制设备,例如设定网卡模式、设定过滤关键字等等。

3.JpcapSender

该类专门用于控制数据包的发送。

4.Packet

这个是所有其它数据包类的父类。Jpcap所支持的数据包有:

ARPPacket、DatalinkPacket、EthernetPacket、ICMPPacket、IPPacket、TCPPacket、UDPPacket。

public static boolean Isipv4(String ipv4){

if(ipv4==null || ipv4length()==0){

return false;//字符串为空或者空串

}

String[] parts=ipv4split("\\");//因为java doc里已经说明, split的参数是reg, 即正则表达式, 如果用"|"分割, 则需使用"\\|"

if(partslength!=4){

return false;//分割开的数组根本就不是4个数字

}

for(int i=0;i<partslength;i++){

try{

int n=IntegerparseInt(parts[i]);

if(n<0 || n>255){

return false;//数字不在正确范围内

}

}catch (NumberFormatException e) {

return false;//转换数字不正确

}

}

return true;

}

你在本地访问本地服务器??

那是对的。

你预期的结果是什么?是你上万维网的那个IP吗?还是你局域网IP(如果局域网的话)?

是这样的,IP是针对你的上一级资源分配设备的,比如路由器或交换机。你的IP主要做的事情是让上一级在网络层能寻址到你。

如果你是局域网上网,可能你在你们局域网内是192168133(举个例子),你访问百度,百度看到的是帮助你最终连入万维网的那个设备的IP,你的这个IP是看不到的。

所以,自己访问自己,当然看到127001了,也不可能是“localhost”。

以上就是关于网络嗅探器的设计与实现 全代码 最简单的就行 最好用java 可以用的加分全部的内容,包括:网络嗅探器的设计与实现 全代码 最简单的就行 最好用java 可以用的加分、判断字符串是否是合法的ipv4地址、java截取ip为什么IP是127.0.0.1等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9301983.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存