我正在使用GCDWebServer类(它太棒了!)并且想知道是否可以通过远程IP限制所允许的连接。
server.addDefaultHandlerForMethod("GET", requestClass: GCDWebServerRequest.self, processBlock: {request in
let remote = request.remoteAddressString.substringToIndex(request.remoteAddressString.lastIndexOf(":")!)
let local = request.localAddressString.substringToIndex(request.localAddressString.lastIndexOf(":")!)
print("\(remote) vs \(local)")
if remote == local {
return nil
}
//Forbidden
return GCDWebServerResponse(statusCode: 403);
})我希望上面的可以工作,但它不是,我的意思是,当IP不同时,它发送403禁止,但否则它以:
[DEBUG] Connection aborted with status code 500 on socket 13
有人能帮我吗?
附注:以下也是doenst工作
server.addDefaultHandlerForMethod("GET",
requestClass: GCDWebServerRequest.self,
processBlock: {request in
print(request.remoteAddressString)
print(request.localAddressString)
let remote = request.remoteAddressString.substringToIndex(request.remoteAddressString.lastIndexOf(":")!)
let local = request.localAddressString.substringToIndex(request.localAddressString.lastIndexOf(":")!)
print("\(remote) vs \(local)")
if remote == local {
return GCDWebServerResponse(statusCode: 200)
}
//Forbidden
return GCDWebServerResponse(statusCode: 403);
})发布于 2016-10-12 05:02:00
请参阅适用于GCDWebServerProcessBlock的GCDWebServer.h
出错时,该块必须返回GCDWebServerResponse或nil,这将导致向客户端返回500HTTP状态代码。
https://stackoverflow.com/questions/39876563
复制相似问题