Ruby on rails 是否可以获取用户的Mac地址';什么时候创建新记录?
是否可以获取发布新记录的用户的MAC地址?Ruby on rails 是否可以获取用户的Mac地址';什么时候创建新记录?,ruby-on-rails,Ruby On Rails,是否可以获取发布新记录的用户的MAC地址? 如果我的列名为mac\u address,我如何编写控制器将mac地址放入该列中?用户的mac地址不是web请求的一部分 我知道这不是你的问题,但你可以使用请求对象获取他们的IP地址: request.ip 在create操作中,您可以有如下内容(假设您有一列ip\u地址): 您可以使用request.ip并对其进行ping。这会将ip放入机器的arp缓存中。通过转储arp缓存,您可以匹配MAC地址 `ping -c 1 #{request.ip}`
如果我的列名为
mac\u address
,我如何编写控制器将mac地址放入该列中?用户的mac地址不是web请求的一部分
我知道这不是你的问题,但你可以使用请求对象获取他们的IP地址:
request.ip
在create
操作中,您可以有如下内容(假设您有一列ip\u地址
):
您可以使用
request.ip
并对其进行ping。这会将ip放入机器的arp缓存中。通过转储arp缓存,您可以匹配MAC地址
`ping -c 1 #{request.ip}`
sleep(10) # For dramatic effect
arptable = `arp -a`
entries = arptable.split("\n")
ipmap = {}
entries.each do |e|
ent = e.split(" ")
ipmap["#{ent[1].gsub(/\(|\)/, "")}"] = ent[3]
end
puts ipmap["#{request.ip}"]
此代码在osx mavericks上进行了测试,linux/bsd/solaris上的工具和格式可能有所不同,但应采用相同的方法,另一个警告是,它只适用于本地intranet/网段
更新
在amazon linux上检查,格式似乎相同。谢谢。如果我使用Jquery呢?我能获得Mac地址吗?@cat你不能。浏览器不会从主机公开此类信息。
`ping -c 1 #{request.ip}`
sleep(10) # For dramatic effect
arptable = `arp -a`
entries = arptable.split("\n")
ipmap = {}
entries.each do |e|
ent = e.split(" ")
ipmap["#{ent[1].gsub(/\(|\)/, "")}"] = ent[3]
end
puts ipmap["#{request.ip}"]