大家好。
我认为仅仅使用 PHP 是不可能的,但只是为了确定。
几个简单的问题。我还没有找到可靠的答案,我很难让一些 PHP 天才告诉我。并教我。
感谢您的帮助。
编辑:这个侵犯隐私问题的动机
我没想到我不得不说这个......但我想我会说
我正在编写几个函数来获取浏览器的首选语言,并根据 IP 找出用户来自哪个国家/地区,从而以正确的语言向访问者提供我的网站内容。
然后我开始想,大多数人都是在路由器后面浏览,我能不能查出他们是不是真的?
然后我突然想到做一个显示网络详细信息的简单程序,即在您的网络上连接的人。我的想法是这样做,但是基于 Web 应用程序而不是像所有其他此类程序一样基于桌面应用程序。
我和大多数开发人员一样,将隐私置于一切之上,所以我有点理解反对票,我自己可能也会投反对票。
如果你因为我奇怪的问题而误判我,我很抱歉,我无能为力..这些事情只是突然出现在我的脑海里。
最佳答案
首先,您是在谈论查找有关访问您网站的用户的信息吗?请记住,这意味着侵犯了他们的隐私(不过您可以自己尝试一下 ;))
Is it possible for PHP to know if the user is accessing the web from behind a Router?
不,你不能。只有当你知道,例如你有很多来自一家公司的访客,他们都有相同的 IP 地址,他们可能在路由器后面,但也可能是代理。
And if yes, how can i get some information about that router, like:
- Router Name, Brand, Serial Number, ...
如果您拥有 IP,您也许可以使用 nmap 等工具发现主机的各种信息.您也许能够找到路由器和主机系统的品牌,但绝对不能找到序列号之类的东西。虽然 nmap 不是 PHP。
注意:在某些国家/地区,未经许可使用此类工具是非法的。无论如何,未经许可使用此类工具在道德上是有问题的。
- Users connected in the same network.
正如我在第一个问题中提到的,如果您有不同 用户使用相同 IP 地址,他们可能在同一网络中。它们也可以在不同的子网中。无论如何,您无法获得他们的本地 IP 地址。
Can PHP also find the Local IP Address for the visitor in that Network?
参见之前的回答。
你看,一切都非常模糊,而且大多基于假设。你无法获得可靠的信息,我很高兴我们还没有完全透明。
一旦我们都使用了 IPv6,整个故事就不同了。
关于PHP - 可以发现用户是否在路由器后面浏览并获取路由器信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2564214/
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题
给定这段代码defcreate@upgrades=User.update_all(["role=?","upgraded"],:id=>params[:upgrade])redirect_toadmin_upgrades_path,:notice=>"Successfullyupgradeduser."end我如何在该操作中实际验证它们是否已保存或未重定向到适当的页面和消息? 最佳答案 在Rails3中,update_all不返回任何有意义的信息,除了已更新的记录数(这可能取决于您的DBMS是否返回该信息)。http://ar.ru
大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta
查看Ruby的CSV库的文档,我非常确定这是可能且简单的。我只需要使用Ruby删除CSV文件的前三列,但我没有成功运行它。 最佳答案 csv_table=CSV.read(file_path_in,:headers=>true)csv_table.delete("header_name")csv_table.to_csv#=>ThenewCSVinstringformat检查CSV::Table文档:http://ruby-doc.org/stdlib-1.9.2/libdoc/csv/rdoc/CSV/Table.html
这个问题在这里已经有了答案:Checktoseeifanarrayisalreadysorted?(8个答案)关闭9年前。我只是想知道是否有办法检查数组是否在增加?这是我的解决方案,但我正在寻找更漂亮的方法:n=-1@arr.flatten.each{|e|returnfalseife
我发现ActiveRecord::Base.transaction在复杂方法中非常有效。我想知道是否可以在如下事务中从AWSS3上传/删除文件:S3Object.transactiondo#writeintofiles#raiseanexceptionend引发异常后,每个操作都应在S3上回滚。S3Object这可能吗?? 最佳答案 虽然S3API具有批量删除功能,但它不支持事务,因为每个删除操作都可以独立于其他操作成功/失败。该API不提供任何批量上传功能(通过PUT或POST),因此每个上传操作都是通过一个独立的API调用完成的
我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数