我有一个包含AdminController类的ASP.NET MVC项目,并给我这样的URls:
我想配置服务器/应用程序,以便只能从192.168.0.0/24网络(即我们的LAN)访问包含/ Admin的 URI
我想将此控制器限制为只能从某些IP地址访问.
在WebForms下,/ admin /是一个物理文件夹,我可以在IIS中限制...但是使用MVC,当然,没有物理文件夹.这是使用web.config或属性实现的,还是我需要拦截HTTP请求来实现这一目标?
我有10.132.0.0/20格式的子网和ASP.Net请求对象的IP地址.
是否有.NET框架功能来检查IP地址是否在给定的子网内?
如果没有,怎么办呢?比特操纵,我猜?
这里我有一个静态参考我需要检查的范围:
private static List<string> Ip_Range = new List<string>()
{
"12.144.86.0/23",
"31.201.1.176/30",
"46.36.198.101/32",
"46.36.198.102/31",
"46.36.198.104/31",
"46.136.172.0/24",
"63.65.11.0/24",
"63.65.12.0/25",
"63.65.12.128/26",
"63.65.12.192/27",
"63.65.12.224/28",
"63.65.12.240/29",
"63.65.12.248/30",
"63.65.12.252/31",
"63.65.12.254/32",
"65.173.56.0/21",
"67.23.241.179/32",
"67.23.241.180/30",
"67.23.241.184/29",
"67.23.241.192/30",
"67.23.241.196/31",
"67.23.241.198/32",
"72.32.164.56/29",
"72.46.244.32/28",
"74.91.16.48/29",
"74.91.16.208/29",
"74.91.20.48/28",
"74.91.20.64/29",
"74.112.134.120/29",
"74.112.135.104/29",
"74.205.37.16/29",
"78.24.205.32/28",
"98.129.27.88/29",
"98.129.91.40/29",
"166.114.0.0/16",
"167.157.0.0/16",
"174.143.165.80/29",
"186.0.156.0/22",
"186.2.0.0/17",
"186.27.0.0/17",
"190.0.248.0/21",
"190.3.184.0/21"
};
Run Code Online (Sandbox Code Playgroud)
这是我看到它如何工作的一些伪代码:
public static bool IpIsWithinRange(string ip) //Something like 127.0.0.1 or 184.56.26.35
{
IPAddress incomingIp = IPAddress.Parse(ip);
foreach (var subnet in Ip_Range)
{
IPAddress sub = IPAddress.Parse(subnet); ?????
if …Run Code Online (Sandbox Code Playgroud) 在IPv4我已经解析IP地址的字符串表示Int32并将其存储INT在SQL Server.
现在,IPv6我试图找出是否有对的字符串表示解析标准或接受的方式IPv6在两个Int64使用C#?
人们如何将这些价值存储在SQL Server- 作为两个领域BIGINT?
我需要使用客户端或服务器端来识别请求是来自Internet还是Intranet.
我想解决的问题是:我们的网站可以从互联网和内部网访问.Intranet用户(公司内部的用户)无法访问Internet.我们正在使用Google Anylitics,当Intranet用户访问该页面时,该页面需要很长时间才能上传,因为它会尝试下载(ga)从Google生成的JavaScript文件.
有解决方案吗
在C#中,假设您有一个表示为字符串值的IP地址范围:
"192.168.1.1-192.168.2.30"
并且您还有一个表示为字符串值的IP地址,如:
"192.168.1.150"
确定地址范围是否包含单个IP地址的最优雅方法是什么?
我有一个IP范围,形成"从"和"到"
从:127.0.0.1到:127.0.0.255等
如何控制127.0.1.253的发送Ip?它在Ip范围内吗?
可能重复:
如何检查输入IP是否属于特定IP范围
我想检查一下IP地址是否在私有IP地址范围内.我在.NET中找不到任何方法,我不确定如何自己构建它?
例如 CheckIsIpPublic("192.168.0.1", upperIp, lowerIp) //should return false
例如 CheckIsIpPublic("78.60.143.29", upperIp, lowerIp) //should return true
var upperIp = new List<IPAddress>
{
IPAddress.Parse("192.168.0.0"),
IPAddress.Parse("10.0.0.0"),
IPAddress.Parse("172.16.0.0"),
IPAddress.Parse("224.0.0.0")
};
var lowerIp = new List<IPAddress>
{
IPAddress.Parse("192.168.255.255"),
IPAddress.Parse("10.255.255.255"),
IPAddress.Parse("172.31.255.255"),
IPAddress.Parse("255.255.255.255")
};
Run Code Online (Sandbox Code Playgroud) 我的活动表上有一个IPAddress列。它以varbinary(16)的形式存储,因此它不仅效率高(比作为字符串存储),而且还支持IPv6。当我存储时,我基本上得到了(new System.Net.IPAddress(“ 127.0.0.1”))。GetAddressBytes()的值。
我想要做的就是搜索以某些字节开头的所有IP地址,例如“ 127. *”。我可以很容易地得到字节,所以假设我能够得到新的byte [] {127}。
鉴于此,我如何实际编写LINQ to SQL查询以获取所需的数据?
可悲的是,我没有StartsWith,尽管我本质上想要的是Activity.Where(a => a.IPAddress.StartsWith(new byte [] {127}))。
c# ×9
ip ×3
ip-address ×2
algorithm ×1
asp-classic ×1
asp.net ×1
asp.net-mvc ×1
cidr ×1
contains ×1
iis ×1
ipv6 ×1
linq ×1
linq-to-sql ×1
range ×1
security ×1
sharepoint ×1
sql-server ×1
string ×1
subnet ×1
web-config ×1