IP比较

        /// <summary>
        /// 检测用户ip是否在指定的ip段中
        /// </summary>
        /// <param name="ip">用户ip</param>
        /// <param name="begip">起始ip</param>
        /// <param name="endip">结束ip</param>
        /// <returns></returns>
        protected bool isinip(string ip, string begip, string endip)
        {
            string[] inip, begipint, endipint = new string[4];
            inip = ip.Split(new[] { "." }, StringSplitOptions.RemoveEmptyEntries);
            begipint = begip.Split(new[] { "." }, StringSplitOptions.RemoveEmptyEntries);
            endipint = endip.Split(new[] { "." }, StringSplitOptions.RemoveEmptyEntries);
            for (int i = 0; i < 4; i++)
            {
                int intip = int.Parse(inip[i]);
                int intbegip = int.Parse(begipint[i]);
                int intendip = int.Parse(endipint[i]);

                if (intip < intbegip || intip > intendip)
                    return false;
                else if (intip > intbegip || intip < intendip)
                    return true;
            }
            return true;
        }

        static public uint IPAddressToLong(string IPAddr)
        {
            System.Net.IPAddress oIP = System.Net.IPAddress.Parse(IPAddr);
            byte[] byteIP = oIP.GetAddressBytes();
            uint ip = (uint)byteIP[3] << 24;
            ip += (uint)byteIP[2] << 16;
            ip += (uint)byteIP[1] << 8;
            ip += (uint)byteIP[0];
            return ip;
        }
        static private uint IPAddressToLongBackwards(string IPAddr)
        {
            System.Net.IPAddress oIP = System.Net.IPAddress.Parse(IPAddr);
            byte[] byteIP = oIP.GetAddressBytes();
            uint ip = (uint)byteIP[0] << 24;
            ip += (uint)byteIP[1] << 16;
            ip += (uint)byteIP[2] << 8;
            ip += (uint)byteIP[3];
            return ip;
        }

        public static long IP2Long(string ip)
        {
            string[] ipBytes;
            double num = 0;
            if (!string.IsNullOrEmpty(ip))
            {
                ipBytes = ip.Split(‘.‘);
                for (int i = ipBytes.Length - 1; i >= 0; i--)
                {
                    num += ((int.Parse(ipBytes[i]) % 256) * Math.Pow(256, (3 - i)));
                }
            }
            return (long)num;
        }
时间: 2024-10-13 11:28:01

IP比较的相关文章

win7设置固定IP重启后无法上网,ipconfig显示为自动配置IPV4 169.254的地址

近日安装原版Win7系统打完网卡驱动补丁后,给电脑设置了固定的IP地址后一切正常,但是电脑重启后发现上不了网了,右下角网络图标有个感叹号,打开网络和共享中心-->本地连接-->详细信息-->发现IPv4的地址与ipconfig /all得到的IP地址一致,均显示为:自动配置IPv4地址:169.254.123.188(首选) 但是查看本地连接-->属性里看到之前设置的固定IP地址是没有问题的, 所以想到了应该是电脑启用了自动配置IPv4功能,导致了固定IP无法分配给电脑, 尝试用命

ubuntu自动拉黑破解ssh服务的IP

2013年的脚本,今天拿出来备份一下. vim /root/secure_ssh.sh #!/bin/bash cat /var/log/auth.log|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /tmp/blackIP.txt TRYCOUNT="5" for i in `cat /tmp/blackIP.txt` do IP=`echo $i |awk -F=

防止恶意解析——禁止通过IP直接访问网站

一.什么是恶意解析 一般情况下,要使域名能访问到网站需要两步,第一步,将域名解析到网站所在的主机,第二步,在web服务器中将域名与相应的网站绑定.但是,如果通过主机IP能直接访问某网站,那么把域名解析到这个IP也将能访问到该网站,而无需在主机上绑定,也就是说任何人将任何域名解析到这个IP就能访问到这个网站.可能您并不介意通过别人的域名访问到您的网站,但是如果这个域名是未备案域名呢?一旦被查出,封IP.拔线甚至罚款的后果都是需要您来承担的.某些别有用心的人,通过将未备案域名解析到别人的主机上,使其

openvpn实现分流,指定IP走VPN,其它走本地网络

最近研究了Openvpn好久.现在写一点心得出来. 客户需求:看香港某几个网站使用openvpn翻墙过去,其它所有访问不能用翻墙,要走本地. 系统环境: Centos x64位 6.8, 使用在线yum安装 一.服务器端配置 详细配置参考其它配置文档 [[email protected] openvpn]# rpm -qa | grep openvpn openvpn-2.3.11-1.el6.x86_64 生成ta.key文件,用于tls-auth认证. # openvpn --genkey

centos配置静态IP

静态IP设置: 1.涉及文件文件: ①/etc/sysconfig/network-script/ifcfg-ens33 ②/etc/resolv.conf 2.修改: //ifcfg-ens33 BOOTPROTO=static IPADDR=192.168.153.120 PREFIX=24 GATEWAY=192.168.153.2 DNS=192.168.153.2 ONBOOT=yes //resolv.conf nameserver=192.168.153.2 3.重启网卡 serv

linux文本三剑客匹配网卡IP地址大PK(CentOS 7系统)

    运维工程师在做配置的过程中很多时候都需要去获取目标服务器网卡上的IP地址,那究竟用什么方式获取更便捷了,博主今天就带大家使用linux文本三剑客分别获取一下网卡的IP地址,最后我们再来对比一下. 实验环境: 系统:CentOS 7.2 网卡张数:双网卡 linux文本三剑客之grep 获取ifconfig输出中的IP地址 ifconfig | egrep -o "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-1][0-9]|22[0-3])\>.(\

MySQL怎样存储IP地址

这两天面试,借贷宝面试官有问到你之前的项目是如何存储ip地址的,我的回答是,存储为varchar字符串类型(事实上我之前参与的项目中的确是采用varchar类型来存储的,但现在想想,当时的场景也仅仅是记录用户操作的地址,也没什么太多用途). 然后,面试官又问我,那你如何查找出A类IP地址的内容,这个时候我就懵了,因为我根本不知道IP地址还分类别,只知道基本格式是从0.0.0.0 ~ 255.255.255 所以,面试也是一种知识的学习,只可惜过程太痛苦,年轻的时候多学点总不是坏处,后悔当初在公司

red hat7 系统可以ping通ip地址但是不能ping通域名

在red hat7中ifconfig后出现这样的情况,ens33是物理网卡,与eth0一样只是不同的名字.但是只能ping通ip地址不能ping通域名. 解决方法: 在文件 /etc/resolv.conf文件下更改nameserver的值 加上 nameserver 8.8.8.8  域名解析服务  nameserver 8.8.4.4为备用的 在文件 etc/sysconfig/network-scripts下修改 ifcfg-eth0 或者 ifcfg-ens33文件,设置静态ip地址,

IP划分

简单的说,IP地址分5类,常见的地址是A.B.C类 首先来看A类ip地址 A:0-127,其中0代表任何地址,127为回环测试地址,因此,A类ip地址的实际范围是1-126. 默认子网掩码为255.0.0.0 2.B类ip地址 B:128-191,其中128.0.0.0和191.255.0.0为保留ip 实际范围是128.1.0.0--191.254.0.0 3.C类ip地址 C:192-223,其中192.0.0.0和223.255.255.0为保留ip 实际范围是192.0.1.0--223

CentOS 7 配置IP地址以及出现的问题排查

当我们新建好一个新的CentOS系统后我们首先需要配置IP 地址,为的就是可以方便远程连接和后续的正常使用!由于CentOS 7更新之后配置和CentOS 6还是有点小区别,让我们开始吧~ 首先进入系统后我们先自动获取一个IP地址: #dhclient 查看获取到的IP地址信息 #ip add  或 #ifconfig 然后我们可以查看一下配置文件 #cat /etc/sysconfig/network-scripts/ifcfg-ens33 当然在这条命令中部分如果不是太方便记(经常练习一下,