0
私はGCDWebServer
クラスで遊んでいます(それは素晴らしいです!)リモートIPによって許可された接続を制限することが可能かどうか疑問に思っていました。 IPのは異なっているが、それ以外の場合は、で終わるとき、それは禁断の403を送信し、私は意味、私が動作する上で期待したが、それはイマイチ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);
})
:
[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)'? –
はい、応答を返す必要があります。 nilを返すと、500エラーレスポンスになります。これはあなたが望むものではありません。 – Pol
私は示唆しましたが、画面に何も表示されません。この 'server.addDefaultHandlerForMethod'を削除すると、ページは読み込まれません。それから、どんなIPでも動作します:( –