IP地址与整数之间的转换实现代码(asp.net)

知识点:一个二进制数,按位左移n位,就是把该数的值乘以2的n次方
二进制除二即右移一位

1、IP地址转换为整数

原理:IP地址每段可以看成是8位无符号整数即0-255,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成
一个无符号32为整数。
举例:一个ip地址为10.0.3.193
每段数字 相对应的二进制数
10 00001010
0 00000000
3 00000011
193 11000001
组合起来即为:00001010 00000000 00000011 11000001,转换为10进制就是:167773121,即该IP地址转换后的数字就是它了。


代码如下:

public class Ip {
public static void main(String[] args) {
System.out.print(ip2int("10.0.3.193"));
}
public static long ip2int(String ip) {
String[] items = ip.split("\\.");
return Long.valueOf(items[0]) << 24
| Long.valueOf(items[1]) << 16
| Long.valueOf(items[2]) << 8
| Long.valueOf(items[3]);
}
}

2、整数转换为IP地址

原理:把这个整数转换成一个32位二进制数。从左到右,每8位进行一下分割,得到4段8位的二进制数,把这些二进制数转换成整数然后加上”。”就是这个ip地址了
举例:167773121
二进制表示形式为:00001010 00000000 00000011 11000001
分割成四段:00001010,00001010,00000011,11000001,分别转换为整数后加上“。”就得到了10.0.3.193。


代码如下:

public class Ip {
public static void main(String[] args) {
System.out.print(int2ip(167773121));
}
public static String int2ip(long ipInt) {
StringBuilder sb = new StringBuilder();
sb.append(ipInt & 0xFF).append(".");
sb.append((ipInt >> 8) & 0xFF).append(".");
sb.append((ipInt >> 16) & 0xFF).append(".");
sb.append((ipInt >> 24) & 0xFF);
return sb.toString();
}
}

(0)

相关推荐

  • asp.net获取URL和IP地址的方法汇总

    HttpContext.Current.Request.Url.ToString() 并不可靠. 如果当前URL为 http://localhost/search.aspx?user=http://csharp.xdowns.com&tag=%BC%BC%CA%F5 通过HttpContext.Current.Request.Url.ToString()获取到的却是 http://localhost/search.aspxuser=http://csharp.xdowns.com&tag=

  • asp.net DZ论坛中根据IP地址取得所在地的代码

    使用方法: IpSearch.GetAddressWithIP("202.96.128.167")CS类代码 复制代码 代码如下: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI

  • asp.net实现拒绝频繁的IP访问的方法

    本文实例讲述了asp.net实现拒绝频繁的IP访问的方法.分享给大家供大家参考,具体如下: 首先我们要实现 IHttpModule接口 using System; using System.Collections.Generic; using System.Text; using System.Web; using System.Web.UI; using System.Web.SessionState; using System.Configuration; namespace MyHttp

  • ASP.NET获取真正的客户端IP地址的6种方法

    在ASP中使用 Request.ServerVariables("REMOTE_ADDR") 来取得客户端的IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的IP地址,而不是真正的客户端IP地址. 要想透过代理服务器取得客户端的真实IP地址,就要使用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取. 不过要注意的事,并不是每个代理服务器都能用 Request.ServerVariables(

  • ASP.net做的IP访问限制

    偶做留言本的时候想起做这么个,具体思路也许不好,做出来只是抛砖引玉,希望有更好的方法! IP添加页是用了一个ListBox, TextBox,两个Button,而在其他的页上则直接用当前IP对比数据库中的IP,代码如下! 限制IP添加页HTML代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ip.aspx.cs" Inherits="admin_ip"

  • asp.net 通过指定IP地址得到当前的网络上的主机的域名

    <%@ Import NameSpace="System.Net" %> <script language="C#" runat=server> protected void doClick(Object Src, EventArgs E){ IPHostEntry hostInfo = DNS.GetHostByAddr(txtIP.Text); showmsg.Text=hostInfo.Hostname; } </script&g

  • 记录游客页面访问IP的简易实现代码 (asp.net+txt)

    记录处理类 复制代码 代码如下: using System; using System.IO; /// <summary> /// File /// </summary> public class File { protected string FilePath; /// <summary> /// File构造 /// </summary> /// <param name="filePath">需要操作的文本路径</p

  • IP地址与整数之间的转换实现代码(asp.net)

    知识点:一个二进制数,按位左移n位,就是把该数的值乘以2的n次方 二进制除二即右移一位 1.IP地址转换为整数 原理:IP地址每段可以看成是8位无符号整数即0-255,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成 一个无符号32为整数. 举例:一个ip地址为10.0.3.193 每段数字 相对应的二进制数 10 00001010 0 00000000 3 00000011 193 11000001 组合起来即为:00001010 00000000 00000011 1100000

  • C# IP地址与整数之间转换的具体方法

    IP地址与整数之间的转换 1.IP地址转换为整数 原理:IP地址每段可以看成是8位无符号整数即0-255,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个无符号的32位整数. 举例:一个ip地址为10.0.3.193 每段数字 相对应的二进制数10 000010100 000000003 00000011193 11000001组合起来即为:00001010 00000000 00000011 11000001,转换为10进制就是:167773121,即该IP地址转换后的数字就是

  • python IP地址转整数

    背景 今天有人问我 "为什么数据库中有人推荐使用 int 类型来保存 IP 地址?".现在(2020年)来看这个东西已经有点过时了,一方面是磁盘空间不在那么贵,另一方面是 IPv6 与这条法则不兼容. 下面我们就来看一下把 IPv4 地址转换成整数的原理和收益各是什么. 转换的原理 一个 IPv4 类的地址共分为四个部分 0.0.0.0 然而每一个部分的取值范围都在 0 ~ 255:也就是说每一个部分都可以用一个字节来保存,总共写个字节就够了,4 个字节不就是 int 吗? 第一步 把

  • C/C++ ip地址与int类型的转换实例详解

    C/C++ ip地址与int类型的转换实例详解 前言 最近看道一个面试题目,大体意思就是将ip地址,例如"192.168.1.116"转换成int类型,同时还能在转换回去 思路 ip地址转int类型,例如ip为"192.168.1.116",相当于"."将ip地址分为了4部分,各部分对应的权值为256^3, 256^2, 256, 1,相成即可 int类型转ip地址,思路类似,除以权值即可,但是有部分字符串的操作 实现代码 #include &l

  • JS中IP地址与整数相互转换的实现代码

    主要用于在js判断用户输入的一个ip段是否合法,如:192.168.1.11-192.168.1.134 实现代码一: function ipToNumber(ip) { var num = 0; if(ip == "") { return num; } var aNum = ip.split("."); if(aNum.length != 4) { return num; } num += parseInt(aNum[0]) << 24; num +=

  • C#之IP地址和整数互转的小例子

    源码: 复制代码 代码如下: [StructLayout(LayoutKind.Explicit)] public struct IP {     public IP(UInt32 value)     {         this._text1 = 0;         this._text2 = 0;         this._text3 = 0;         this._text4 = 0;         this._value = value;     }     public

  • VBS获取外网IP地址并发送到指定邮箱的代码

    复制代码 代码如下: Function GetIPAddress() Dim Flag, Source Set GetIPObj = WScript.GetObject("http://ipseeker.cn//") Flag = 0 For i=1 To 10    If GetIPObj.readyState = "complete" Then     Flag=1    Exit For    End If    WScript.Sleep 500 Next

  • 用Python将IP地址在整型和字符串之间轻松转换

    前言 大家应该都有所体会,对于字符串型的IP存入数据库中,实在是个即浪费空间又浪费性能的家伙,所以可爱的人们想出来将IP转换为整型存储.MySQL中存在INET_ATON() .INET_NTOA()函数进行IP整型和字符串之间的转换,那么Python中存在什么方法可以实现MySQL中INET_ATON() .INET_NTOA()的功能呢?方法肯定是有的- 方法如下 # 导入相关模块包 import socket import struct # 将IP从字符串转为整型 >>> int(

  • 基于Java解决华为机试实现整数与IP地址间的转换 

    目录 1.简述 示例1 2.代码实现 1.简述 描述: 原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成 一个长整数. 举例:一个ip地址为10.0.3.193 每段数字                相对应的二进制数 10                          00001010 0                            00000000 3                            0000

  • java实现ip地址与十进制数相互转换

    先看实例 代码如下 复制代码 代码如下: classip { privatestaticlongiptolong(stringstrip) //将127.0.0.1形式的ip地址转换成10进制整数,这里没有进行任何错误处理 { intj=0; inti=0; long[]ip=newlong[4]; intposition1=strip.indexof("."); intposition2=strip.indexof(".",position1+1); intpos

随机推荐