ip地址,网络字节序,long类型

接口获取客户端IP

string IpAdd =  context.Request.ServerVariables.Get("Remote_Addr").ToString();

 userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")//第二种方式

判断是否是正确的Ip地址
正则篇:

 public static bool IsIP(string ip)
        {
            //判断是否为IP
            return Regex.IsMatch(ip, @"^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$");
        }

c#内置IPAdd方法篇:
string ipStr=“192.168.0.2”;
IPAddress ip;
if(IPAddress.TryParse(ipStr,out ip))
{
MessageBox.Show(“可以解析”);
}
else
{
MessageBox.Show(“未知Ip”);
}

    public IPAddTable GetIpAdd(string  IpSeach)
        {
            long Ip2FloatData = Ip2Float(IpSeach);
            string sql = $@"SELECT  [Id],[IPCodeStart],[IPCodeEnd],[IPAddStart],[IPAddEnd],[BigProvName],[CityName],[CityCode] FROM  [IPAddTable] where  {Ip2FloatData} between IPCodeStart and IPCodeEnd";
            ResultMsg msg = new ResultMsg();
            using (IDbConnection conn = new GetConn().GetConns())
            {
                IEnumerable<IPAddTable> IpinfoList;
                IpinfoList = conn.Query<IPAddTable>(sql);
                if (IpinfoList != null)
                {
                    return IpinfoList.FirstOrDefault();
                }
                else
                {
                    return null;
                }
            }
           
        }

        public long Ip2Float(string IP)
        {
            char[] separator = new char[] { '.' };
            string[] items = IP.Split(separator);
            return long.Parse(items[0]) << 24
                    | long.Parse(items[1]) << 16
                    | long.Parse(items[2]) << 8
                    | long.Parse(items[3]);
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值