Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 是否可以获取用户的Mac地址';什么时候创建新记录?_Ruby On Rails - Fatal编程技术网

Ruby on rails 是否可以获取用户的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地址?

如果我的列名为
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}"]