有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java嗅探访问的站点并保存到文件

我想在连接到我的网络的pc上登录http trafic,以了解用户访问了哪些站点。该程序将在一家公司运行,可能是为了检查工人是否不去其他工作地点,可能是为了统计数据。我只需要知道什么电脑在什么时间浏览了什么网站,没有其他信息

我上网搜索了好几个小时,没有发现任何对我有用的东西。我试过wireshark,但它太复杂了,不能作为守护进程运行(我知道,也许我错了),而且窗口很大

我试图将ServerSocket绑定到80端口,但没有成功,似乎没有数据到达我的socket。Socket(绑定到80 localhost)的结果也一样,是否有任何类允许我在safari(或任何其他浏览器)和端口之间插入

[在我被要求这么做之前,该公司使用了几天键盘嗅探器。但这种方式的隐私是零,显然这不是正确的解决方案。]

知道吗? 另外,这个项目不会是“秘密”的,工作人员知道它,但需要的是,它不能被非管理人员阻止

首选java解决方案,因为它是我唯一知道的语言


共 (1) 个答案

  1. # 1 楼答案

    根据你最后的评论(顺便说一句,你应该更新你的问题),我知道你需要一些东西来记录所有http流量

    你必须明白,要做到这一点,你需要处于私人网络和互联网之间的中间,很可能是Linux防火墙为私有网络计算机做NAT。p>

    如果您可以运行非java软件,那么您可以使用来自dsniff的软件urlsnarf来满足您的需求。您可以运行它并将其保留在后台日志记录中,还可以通过端口或ip进行过滤

    大多数发行版已经有一个名为dsniff的包,其中包括urlsnarf命令

    对于基本启动:

    urlsnarf -n -i eth0 
    

    这将开始记录到tcp端口80、8080或3128上的所有url。如果要存储捕获以供以后可视化(例如使用wireshark),可以使用-p选项

    如果你问我,我认为你做得不对,你应该设置一个透明的代理,拒绝访问“未经授权”的网站,而不是记录每个请求的http url。否则你就侵犯了人们的隐私,根据国家的不同,这甚至可能是非法的

    为NAT设置服务器并不困难,你只需要一台带有两个网卡的linux PC,一个像aifwipmasq这样的防火墙软件,这样你就可以通过阻止网站的IP来阻止访问。如果你还想处理http流量包数据,你需要一个透明代理(not a reverse proxy),最流行的是^{a5

    如果你喜欢鱿鱼,我建议你去看看

    如果除了注释上留下的警告之外,你还坚持自己编写一个,毫无疑问,你应该使用jpcap library,检查examples section,在那里你已经可以使用代码快速启动

    祝你好运