如何获取客户端中的ip地址和mac地址?

hn1232 2009-06-12 01:22:03
用jsp+Servlet做的登录功能,希望能在用户登陆成功后,将客户端的ip及mac地址送至服务器端保存,如何获取呢?请高手指教一二……
...全文
488 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
hn1232 2009-06-17
  • 打赏
  • 举报
回复
谢谢各位朋友的回答啊!学习了!
老紫竹 2009-06-15
  • 打赏
  • 举报
回复
普通B/S程序拿不到MAC地址,如果装客户端插件可以!
冰思雨 2009-06-15
  • 打赏
  • 举报
回复
要不,楼主把用户的登录框用Flash代替把,用flash界面登录可以获得客户端的MAC地址。
一楼兄弟说得很对。单纯的Http交互时不可能得到客户端的MAC地址信息的。
APOLLO_TS 2009-06-13
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 java_cxrs 的回复:]
JS可以实现吧
[/Quote]

能行!就是总有安全提示!

jsp获得Ip地址,也有局限。代理上网。虚拟路径转化!!估计LS说的够你用了吧!
不善^ 2009-06-13
  • 打赏
  • 举报
回复
JS可以实现吧
hn1232 2009-06-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kbyst 的回复:]
哦 俄罗斯方块同学 嘿嘿
进来学点东西
[/Quote]

呵呵,你怎么知道的?新手只能弄点旧玩意儿~嘿!
hn1232 2009-06-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cgaolei 的回复:]
在ServletRequest中可以用:
getRemoteAddr()方法得到用户IP地址
getRemoteHost()方法得到用户IP地址的DNS解析。
getRemotePort()方法得到用户传输层的端口

在服务器上得到MAC地址是不可能的,因为MAC地址是在OSI模型的两二层,TCP/IP在第三层,所以无法得到。

只有在本地机器上写网络程序时能拿到MAC address:

NetworkInterface ni = NetworkInterface.getByInetAddress(address);
mac = ni.getHardwareAdd…
[/Quote]

getRemoteAddr()方法得到用户IP地址 ----- 已经测试成功了
getRemoteHost()方法得到用户IP地址的DNS解析。 ----- 似乎是按6楼兄弟的说法,我测试的时候getRemoteAddr()和getRemoteHost()得到了相同的ip值


至于mac地址,google了其他的资料,基本是被总结为3种方法,都试了一下,没成功,而且运行时速度相当之慢……
在服务器上得到MAC地址是不可能的 ----- 可是我现在做的系统就有这样的需求……

取mac地址,期待其他更好的解决方案~
谢谢帮顶的各位朋友!
YL_Show 2009-06-12
  • 打赏
  • 举报
回复
学习
cgaolei 2009-06-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jastby 的回复:]
getRemoteHost()方法得到用户IP地址的DNS解析。

还是???

getRemoteHost():获得客户端主机的名字,若失败,则返回客户端电脑的IP地址。
[/Quote]

6楼对getRemoteHost()方法的解释更准确。
YL_Show 2009-06-12
  • 打赏
  • 举报
回复
xuexi
whoami23007432 2009-06-12
  • 打赏
  • 举报
回复
学习中。。。。
jastby 2009-06-12
  • 打赏
  • 举报
回复
getRemoteHost()方法得到用户IP地址的DNS解析。

还是???

getRemoteHost():获得客户端主机的名字,若失败,则返回客户端电脑的IP地址。
IT东 2009-06-12
  • 打赏
  • 举报
回复
学习了
  • 打赏
  • 举报
回复
mark;1楼果然厉害
kbyst 2009-06-12
  • 打赏
  • 举报
回复
哦 俄罗斯方块同学 嘿嘿
进来学点东西
cgaolei 2009-06-12
  • 打赏
  • 举报
回复
忘说了,那个得到MAC地址的方法要求JDK6以上。
cgaolei 2009-06-12
  • 打赏
  • 举报
回复
在ServletRequest中可以用:
getRemoteAddr()方法得到用户IP地址
getRemoteHost()方法得到用户IP地址的DNS解析。
getRemotePort()方法得到用户传输层的端口

在服务器上得到MAC地址是不可能的,因为MAC地址是在OSI模型的两二层,TCP/IP在第三层,所以无法得到。

只有在本地机器上写网络程序时能拿到MAC address:

NetworkInterface ni = NetworkInterface.getByInetAddress(address);
mac = ni.getHardwareAddress();

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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