我有一个休息应用程序坐在IIS服务器上(在公共互联网上),其配置如下:
(该条目不在公共dns中,因为它不一定是。这不仅仅是通过模糊主机头来实现安全性。)
为了让我的客户端连接到应用程序,我只需在hosts文件中添加一个条目:
A.B.C.D something-not-public-dns.example.com
使用hosts文件条目,一切都很好。
问题是我的一个客户端坐在ASP.NET Web应用程序中,我无法修改应用程序所在的Web服务器的hosts文件。
因此我的问题是 - 是否可以欺骗Web应用程序内的主机文件条目?
我在考虑这样的事情:
func outerX(innerPoint:CGPoint)->CGFloat
{
return (innerPoint.x-self.frame.size.width*0.5)*radius2/radius1 +self.frame.size.width*0.5
}
func outerY(innerPoint:CGPoint)->CGFloat
{
return (innerPoint.y-self.frame.size.height*0.5)*radius2/radius1+self.frame.size.height*0.5
}
func moveObjectToOuterCircle()
{
let innerPoint = object1.position
let outerPoint = CGPointMake(outerX(innerPoint), outerY(innerPoint))
object1.removeAllActions()
object1.runAction(SKAction.moveTo(outerPoint,duration:0.25))
}
我会考虑上面的示例请求级别欺骗,这很好,但我也很想知道是否也可以执行应用程序级别欺骗。这样,应用程序可以设置主机条目,并且在该应用程序中发出的所有请求都将使用它们。
答案 0 :(得分:4)
你正在以错误的方式解决这个问题 - 而不是尝试设置从域名到IP地址的映射,你应该简单地向IP发出请求并显式覆盖HTTP请求的Host头。您要使用的域名:
string url = "A.B.C.D/myservice/mymethod";
var client = new WebClient();
client.Headers[HttpRequestHeader.ContentType] = "application/json";
client.Headers[HttpRequestHeader.Host] = "something-not-public.example.com";