我最近将我的路由器更改为由 Google 为 Google Fiber 提供的路由器(耶!),现在我注意到当我在本地服务器上开发时检查 request.connection.remoteAddress 时看到的内容发生了变化。以前,我曾经看到过:
request.connection.remoteAddress; // 192.168.1.10
现在我看到了:
request.connection.remoteAddress; // ::ffff:192.168.1.10
::ffff:192.168.1.10 究竟是 IPv6 地址还是 IPv4 地址?:: 是最简单的方法吗?INET_ATON 之类的东西将它们更改为大整数。我是否应该放弃这一点并将所有远程地址存储为长度为 45 个字符的字符串(IPv6 地址字符串的最大长度)最佳答案
Is my Node server listening to IPv6 addresses?
是的。您的服务器正在监听 IPv6 连接,并且未设置 IPV6_V6ONLY 标志,结果 IPv4 连接由同一个套接字处理。您可以在 this question 中阅读更多关于此标志的信息。 .
在这种情况下,IPv6 连接是否可能(可以路由到您的服务器)是无关紧要的 - 重要的是 IPv4 连接由监听 IPv6 连接的套接字接收。
Is
::ffff:192.168.1.10actually an IPv6 address or is it an IPv4 address?
两者兼而有之。 IPv6 地址可以嵌入 IPv4 地址 - 这是这些嵌入地址之一。见 IPv4-mapped IPv6 addresses .
Is the easiest way to tell if a remoteAddress is IPv6 to check if the string contains
::?
IPv6 地址不一定包含 ::,它是一个简短的符号,表示一些零个数。 ::ffff:192.168.1.10 等价于 0:0:0:0:0:ffff:192.168.1.10 或 0:0:0:0 :0:ffff:c0a8:010a(见 IPv6 address presentation)。因此,为了区分 IPv6 和 IPv4 地址,您只需检查一个冒号 - :.
When storing IPv4 addresses in the database I used to use something like INET_ATON to change them into large integers. Should I abandon this and just store all remote addresses as strings that can be 45 characters long (maximum length of an IPv6 address string)
IPv6 地址是一个 128 位的数字 - 即使您可以将其存储为数字(例如,在 MySQL 中作为两个 BIGINT 数字),这种方法是否真的有意义仍然值得怀疑。我能想到的唯一需要处理数字的场景是评估子网掩码,对于其他所有情况,字符串就足够且更易于处理。
关于javascript - request.connection.remoteAddress 现在在 node.js 中以::ffff 为前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24896386/
简而言之错误:NOTE:Gem::SourceIndex#add_specisdeprecated,useSpecification.add_spec.Itwillberemovedonorafter2011-11-01.Gem::SourceIndex#add_speccalledfrom/opt/local/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:91./opt/local/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/rails/gem_dependency.rb:275:in`==':und
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的
request.cookies和RubyonRails中的cookies对象有区别吗?我目前正在尝试将带有cookie的请求从我的node.js服务器发送到我的ROR4应用程序。似乎在ROR应用程序中,request.cookies包含我发送的cookie,但是cookies对象(现有逻辑所基于的对象)没有它。我已经搜索了文档,但找不到任何相关内容。我错过了什么吗?感谢您的帮助。 最佳答案 理想情况下,request.cookies和cookies应该相同。但是,在POST(创建操作)请求中,rails会验证XSRFtoken。如果
如何通过HTTPClient使用持久HTTP连接?发送HTTP请求时是否只是设置KeepAlive的问题?文档指出支持持久连接,但没有告诉我们如何使用它们。 最佳答案 是availableinNet::HTTP如文档中所写,Net::HTTP.startimmediatelycreatesaconnectiontoanHTTPserverwhichiskeptopenforthedurationoftheblock.Theconnectionwillremainopenformultiplerequestsintheblockift
我的Ruby-on-Rails项目中有以下文件结构,用于规范:/spec/msd/serviceservice_spec.rb/support/my_modulerequests_stubs.rb我的request_stubs.rb有:moduleMyModule::RequestsStubsmodule_functiondeflist_clientsurl="dummysite.com/clients"stub_request(:get,url).to_return(status:200,body:"clientsbody")endend在我的service_spec.rb我有:re
我有1.8.6附带的VanillaMacOSXLeopard。我是RoR的新手,所以会学习网上的教程。在使用更高版本的Ruby时,我是否可能会发现遵循它们的问题?我目前正在查看提到1.8.6和1.8.7的这个-http://www.railstutorial.org/book 最佳答案 RoR教程对两者都适用,但如果您正在学习Ruby,则应该学习1.9。Rails3将不支持1.8.6,所以我会选择1.8.7或1.9。我还推荐使用RVM在Ruby版本之间切换。 关于ruby-on-rail
我开始了一个新的Rails3.2.5项目,Assets管道不再工作了。CSS和Javascript文件不再编译。这是尝试生成Assets时日志的输出:StartedGET"/assets/application.css?body=1"for127.0.0.1at2012-06-1623:59:11-0700Servedasset/application.css-200OK(0ms)[2012-06-1623:59:11]ERRORNoMethodError:undefinedmethod`each'fornil:NilClass/Users/greg/.rbenv/versions/1
rails新手。只是想了解\assests目录中的这两个文件。例如,application.js文件有如下行://=requirejquery//=requirejquery_ujs//=require_tree.我理解require_tree。只是将所有JS文件添加到当前目录中。根据上下文,我可以看出requirejquery添加了jQuery库。但是它从哪里得到这些jQuery库呢?我没有在我的Assets文件夹中看到任何jquery.js文件——或者直接在我的整个应用程序中没有看到任何jquery.js文件?同样,我正在按照一些说明安装TwitterBootstrap(http:
我有这个:AccountSummary我想单击该链接,但在使用link_to时出现错误。我试过:bot.click(page.link_with(:href=>/menu_home/))bot.click(page.link_with(:class=>'top_level_active'))bot.click(page.link_with(:href=>/AccountSummary/))我得到的错误是:NoMethodError:nil:NilClass的未定义方法“[]” 最佳答案 那是一个javascript链接。Mechan