【发布时间】:2021-02-18 09:47:15
【问题描述】:
我的项目是一个网络应用程序,用作带有徽标和快速链接的公司登录页面。
我想为本地 LAN 中的用户添加指向基于 LAN 的网页的额外链接,但如果该页面在本地 LAN 之外提供,则隐藏这些链接。
我知道如何隐藏和显示事物 如何判断页面是在局域网内还是在局域网外提供?
这是我迄今为止唯一想到的,但我不确定它是否会奏效。 (strings.left() 是我自己的函数之一,它从字符串的左侧获取前 x 个字符)
protected void Page_Load(object sender, EventArgs e) {
String thisipaddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
if (thisipaddress == "127.0.0.1" || strings.left(thisipaddress,7)=="192.168"){
hiddenarea.Visible = true;
} else {
hiddenarea.Visible = false;
}
}
我想我需要知道的是,使用我当前的代码,如果另一个 LAN 中的用户访问我的页面,我的代码会检测到他们的内部 IP 地址还是外部 IP 地址?
【问题讨论】:
-
如果您允许外部 Internet 访问 Intranet,通常会被认为存在安全风险。是这样吗?
-
您需要的是一些使用您自己的 DNS 的网络。不是为了 SO,而是堆栈错误
-
该页面面向公众。我也想添加指向内部页面的链接——但仅限于它们向内部用户显示。我没有制作内部页面来进行外部访问。我在 Stack Overflow 上发帖是因为我想在 C# 中执行此操作。我只想检测页面是在局域网内部还是外部提供。
-
这行得通吗?
bool isLocal = HttpContext.Current.Request.IsLocal; -
@bgmCoder
IsLocaldocumentation:“如果请求发起者的 IP 地址是 127.0.0.1 或者请求的 IP 地址与服务器的 IP 地址相同,则 IsLocal 属性返回 true。”
标签: c# asp.net ip-address lan