0
我在玩GCDWebServer
類(很棒!),並想知道是否可以通過遠程IP限制允許的連接。如何在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
誰能幫助我?
P.S.下面還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);
})
你是說我應該成功(例如有效的ip)不返回'nil', 'GCDWebServerResponse(statusCode:200)'? –
是的,你應該返回一個響應。返回零將導致500錯誤響應,這不是你想要的。 – Pol
我按照建議,但沒有出現在屏幕上,頁面沒有加載,當我刪除這個'server.addDefaultHandlerForMethod'然後它的工作原理(但從任何IP):( –