小编Ben*_*ing的帖子

从IP地址获取位置

我想从他们的IP地址检索访问者的城市,州和国家等信息,以便我可以根据他们的位置自定义我的网页.有没有一种好的,可靠的方法在PHP中执行此操作?我使用JavaScript进行客户端脚本编写,使用PHP进行服务器端脚本编写,使用MySQL进行数据库访问.

php ip geolocation geoip

192
推荐指数
16
解决办法
35万
查看次数

如何让PHPUnit MockObjects根据参数返回不同的值?

我有一个PHPUnit模拟对象,'return value'无论它的参数是什么都返回:

// From inside a test...
$mock = $this->getMock('myObject', 'methodToMock');
$mock->expects($this->any))
     ->method('methodToMock')
     ->will($this->returnValue('return value'));
Run Code Online (Sandbox Code Playgroud)

我想要做的是根据传递给mock方法的参数返回一个不同的值.我尝试过类似的东西:

$mock = $this->getMock('myObject', 'methodToMock');

// methodToMock('one')
$mock->expects($this->any))
     ->method('methodToMock')
     ->with($this->equalTo('one'))
     ->will($this->returnValue('method called with argument "one"'));

// methodToMock('two')
$mock->expects($this->any))
     ->method('methodToMock')
     ->with($this->equalTo('two'))
     ->will($this->returnValue('method called with argument "two"'));
Run Code Online (Sandbox Code Playgroud)

但是如果没有使用参数调用mock,这会导致PHPUnit抱怨'two',所以我假设定义methodToMock('two')覆盖了第一个的定义.

所以我的问题是:有没有办法让PHPUnit模拟对象根据其参数返回不同的值?如果是这样,怎么样?

php phpunit unit-testing mocking

128
推荐指数
7
解决办法
7万
查看次数

在iOS7上注入系统范围的触摸事件

此前iOS7有可能注入的触摸事件与GSSendSystemEventGSSendEvent私人API调用,例如:

在iOS7上,这些调用似乎无声地失败了.在iOS 7模拟系统范围的触摸中已经提出了另一种选择,但它仅适用于越狱设备.https://github.com/kif-framework/KIF看起来像另一个选项,但它似乎只支持为当前应用程序注入事件而不是系统范围(所以当你是应用程序时你不能注入触摸事件例如,在背景中.

那么如何在没有越狱的情况下在iOS7上注入系统范围的触摸事件?

iphone objective-c iphone-privateapi ios ios7

48
推荐指数
1
解决办法
5496
查看次数

按IP地址识别国家/地区

有没有办法通过查看IP地址来确定国家名称?我的意思是,国家/地区是否有特定的IP地址范围?例如,澳大利亚只能在范围内拥有IP地址123.45.56.89 - 231.54.65.98(仅举例)

ip ip-address geolocation geoip

39
推荐指数
6
解决办法
8万
查看次数

Node.js 100%CPU - gettimeofday调用

我有一个长期运行的node.js进程,有时会跳转到100%的CPU并停止响应请求.最近一次,我strace加入了这个过程,这就是我所看到的:

Process 19523 attached - interrupt to quit
gettimeofday({1394558574, 234192}, NULL) = 0
gettimeofday({1394558574, 235381}, NULL) = 0
gettimeofday({1394558574, 306460}, NULL) = 0
mmap(0x3edab823a000, 2097152, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x3edab823a000
munmap(0x3edab823a000, 811008)          = 0
munmap(0x3edab8400000, 237568)          = 0
mmap(0x3edab8300000, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3edab8300000
gettimeofday({1394558574, 316435}, NULL) = 0
gettimeofday({1394558574, 316576}, NULL) = 0
gettimeofday({1394558574, 316677}, NULL) = 0
gettimeofday({1394558574, 316775}, NULL) = 0
gettimeofday({1394558574, 316879}, NULL) = 0
gettimeofday({1394558574, 316978}, NULL) = 0
gettimeofday({1394558574, …
Run Code Online (Sandbox Code Playgroud)

javascript linux strace node.js

24
推荐指数
1
解决办法
5098
查看次数

OpenCV groupRectangles - 获取分组和未分组的矩形

我正在使用OpenCV并希望将具有显着重叠的矩形组合在一起.我已经尝试过groupRectangles这个,它采用了一个组阈值参数.如果阈值为0则根本不进行任何分组,并且阈值为1时,仅返回由至少2个矩形组成的矩形.例如,给定下图中左侧的矩形,您最终得到右侧的2个矩形:

在此输入图像描述

我想最终得到的是3个矩形.上图中右侧的2,加上左侧图像右上角的矩形,不与任何其他矩形重叠.实现这一目标的最佳方法是什么?

c++ opencv rectangles

17
推荐指数
1
解决办法
1万
查看次数

是否有node.js模块可以确定IP的地理位置?

提供IP,是否有node.js模块可以确定它所在的城市和州?

javascript ip geolocation geoip node.js

16
推荐指数
1
解决办法
7571
查看次数

以编程方式获取Web请求启动器

Chrome开发者工具网络选项卡有一个启动器列,可以准确显示启动网络请求的代码.

chrome dev工具的网络选项卡

我希望能够以编程方式获取网络请求启动器的信息,所以我可以用运行脚本urlrequest search string参数,它会返回在哪里与URL匹配的每个请求的细节request search string,从页面上前来url.所以给定参数www.stackoverflow.comgoogle输出可能看起来像这样(显示请求URL,行号和请求的URL):

/   19  http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js
/   4291    http://www.google-analytics.com/analytics.js
Run Code Online (Sandbox Code Playgroud)

我调查了PhantomJS,但onResourceRequested根据文档:http://phantomjs.org/api/webpage/handler/on-resource-requested,它的回调函数不提供任何启动器信息,也不提供可以派生它的上下文. HTML

是否可以使用PhantomJS或其他一些工具或服务如硒?

UPDATE

从评论和答案到目前为止,似乎Phantom,Selenium或其他任何东西目前都不支持.所以这里有一个可能有效的替代方法:加载页面和所有资产,然后request search string在所有文件中查找任何出现的内容.我怎么能这样做?

google-chrome-devtools phantomjs selenium-chromedriver casperjs selenium-webdriver

13
推荐指数
1
解决办法
1386
查看次数

在展示WKInterfaceController时,如何更改用于关闭控制器的标题的颜色?

在我的手表应用程序中,在显示控制器后presentControllerWithNames:contexts:,是否可以更改状态栏中标题的颜色?例如,在Apple的WatchKit Catalog样本中,他们有一个控制器,它们以模式方式呈现,并将"Dismiss"设置为标题.在故事板中,此控制器的标题似乎应用了全局色调,但在模拟器中运行应用程序时,颜色默认为白色.

如果可能的话,我如何让一个呈现的WatchKit控制器尊重全局色调?

编辑:为了清晰起见附加截图.Apple Watch模拟器与storyboard接口控制器相比

objective-c apple-watch watchkit

12
推荐指数
2
解决办法
2584
查看次数

使用int8范围加入2个大的postgres表不能很好地扩展

我想将IP路由表信息加入到IP whois信息中.我正在使用亚马逊的RDS,这意味着我不能使用Postgres ip4r扩展,因此我使用int8range类型来表示IP地址范围,并使用gist索引.

我的表看起来像这样:

=> \d routing_details
     Table "public.routing_details"
  Column  |   Type    | Modifiers
----------+-----------+-----------
 asn      | text      |
 netblock | text      |
 range    | int8range |
Indexes:
    "idx_routing_details_netblock" btree (netblock)
    "idx_routing_details_range" gist (range)


=> \d netblock_details
    Table "public.netblock_details"
   Column   |   Type    | Modifiers
------------+-----------+-----------
 range      | int8range |
 name       | text      |
 country    | text      |
 source     | text      |
Indexes:
    "idx_netblock_details_range" gist (range)
Run Code Online (Sandbox Code Playgroud)

完整的routing_details表包含不到600K的行,netblock_details包含大约8.25M行.两个表中都有重叠的范围,但是对于routing_details表中的每个范围,我想从netblock_details表中获得单个最佳(最小)匹配.

我提出了2个不同的查询,我认为这些查询将返回准确的数据,一个使用窗口函数,另一个使用DISTINCT ON:

EXPLAIN SELECT DISTINCT ON (r.netblock) *
FROM …
Run Code Online (Sandbox Code Playgroud)

sql postgresql amazon-web-services amazon-rds

12
推荐指数
1
解决办法
557
查看次数