今天鹅厂店面,最后问了一个ip地址字符串和整数间无损转化的问题,晚上有时间了手撸了一下代码. public class IPstr { public static void main(String args[]){ ipstrToint sti=new ipstrToint(); int ip=0; ip=sti.strToint("127.11.22.33"); if(ip==0) System.out.println("无效IP"); else System.o…
/**  * Copyright (c) 2010, 新浪网支付中心  *      All rights reserved.  *  * Java IP地址字符串与BigInteger的转换,  * 支持IPv6  *  */   import java.math.BigInteger; import java.net.InetAddress; import java.net.UnknownHostException;   /**  * IP转换大数进行比较工具  *  * @author y…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 8…
linux的套接字部分比较容易混乱,在这里稍微总结一下. 地址转换函数在地址的文本表达式和它们存放在套接字地址结构中的二进制值进行转换. 地址转换函数有四个:其中inet_addr 和 inet_ntoa适用于IPv4,inet_pton 和 inet_ntop同时适于用IPv4和IPv6. 套接字地址结构分为IPv4套接字地址结构sockaddr_in和IPv6套接字地址结构sockaddr_in6.其中IPv4的套接字地址结构如下. IPv4套接字地址结构:(定义在<netinet/in.h…
如 10.3.9.12 转换规则为:        10            00001010
         3            00000011
         9            00001001
        12            00001100
再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ? class Switch(object): def __init__(self, ip_str):…
def str2bin(s): temp = s.split('.') result = '' for i in range(len(temp)): temp[i] = str(bin(int(temp[i]))[2:]) if len(temp[i]) < 8: temp[i] = '0'*(8-len(temp[i])) + tenp[i] result += str(temp[i]) return result…
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地址转换后的数字就是…
http://blog.csdn.net/cpp_funs/article/details/6988154 1.htonl ()和ntohl( ) u_long PASCAL FAR ntohl (u_long netlong); u_short PASCAL FAR ntohs (u_short netshort); ntohl( )-----网络顺序转换成主机顺序 u_long PASCAL FAR htonl (u_long hostlong); u_short PASCAL FAR ht…
"IP地址的长度为32位,分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用句点隔开." 由此我们了解到,IP地址实际上是一个32位正整数,在C#中可以使用uint类型来表示,但SQLServer数据库里好像没有对应的类型:转而使用数据库支持的int类型的话,则会出现溢出的情况:因此我们做出妥协:使用long(bigint)类型. TIP: int取值范围:-2,147,483,648 到 2,147,483,647 uint取值范围:0 到 4,294,96…
嗯……前阵子接了个活儿,需要做一个基于IP地址黑名单的分流网关.刚接到的时候心想iptables不就行了么,没想到一看客户给的IP黑名单规模……我擦……上亿个…… 黑名单到了这个规模,就不得不考虑下优化的问题了.要知道从0.0.0.0到255.255.255.255,IP地址总共也只有232个,约43亿,除去不可能用于实际的地址以及内网地址之后就更少了,只有几分之一.上亿个IP地址的黑名单已经达到实际可用IP地址的几分之一了,而且还要实现大流量高性能查询,实在是…… 最初打算是用redis来实现…
IP地址与端口 TCP/IP(传输控制协议/网际协议)不是一个协议,而是一组协议的总称,包括IP.TCP.UDP.ICMP.ARP等.它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据交换格式以及传送方式. IP地址:是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围内惟一的标识符. 一个IP地址主要由两部分组成:网络地址和主机地址. 网络地址由因特网权力机构分配,主机地址由各个网络的管理员统一分配. IP地址编制方案有两种:IPV4和IPV6 IPV4:二进制表示共3…
Given a start IP address ip and a number of ips we need to cover n, return a representation of the range as a list (of smallest possible length) of CIDR blocks. A CIDR block is a string consisting of an IP, followed by a slash, and then the prefix le…
实例01 实现一个简单的Web服务访问 本实例将实现IP地址查询接口服务,根据用户传入的IP地址返回IP所在的省.市.地区,实例中将会用到IP地址库用于查询信息,由于数据较多,所以读者可在光盘资源文件中直接附加数据库文件,这里将不再介绍导入数据的过程. 程序实现步骤如下: (1)打开Visual Studio 2017开发环境,然后依次点击文件→新建→项目,在弹出的新建项目对话框中选择“ASP.NET Web应用程序”选项,然后更改项目名称和项目路径,如图12.1所示. 图12.1  新建ASP…
前几天,阿淼的一个朋友去面试,他回来告诉我,面试官问他 IP 地址是怎么存在数据库的?他当时也没多想,直接就回答的存字符串啊(心想:这么简单的问题,怕不是看不起我吧) 前面这段权当看看,毕竟 IP地址 本来就是一个字符串,存放在数据库作为字符穿类型,也是无可厚非的.但是,阿淼我可是一个喜欢换位思考的人,站在面试官的角度,你觉得我会问这么一个低级的问题么? 那么档案当然是否定的.所以,面试官想知道的是你对这个问题会不会有深度思考,从此来一定程度的判断你在平常的开发中只是一个单纯的 "搬砖"…
问题描述: 在路由器中,一般来说转发模块采用最大前缀匹配原则进行目的端口查找,具体如下: IP地址和子网地址匹配: IP地址和子网地址所带掩码做AND运算后,得到的值与子网地址相同,则该IP地址与该子网匹配. 比如: IP地址:192.168.1.100 子网:192.168.1.0/255.255.255.0,其中192.168.1.0是子网地址,255.255.255.0是子网掩码. 192.168.1.100&255.255.255.0 = 192.168.1.0,则该IP和子网192.1…
using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Text.RegularExpressions; namespace AIMSCommon { /// <summary> /// 根据IP地址查询所在地 /// </summary> public class IPScanerHelper { #region 私有成员 private st…
nginx反向代理后,在应用中取得的ip都是反向代理服务器的ip,取得的域名也是反向代理配置的url的域名,解决该问题,需要在nginx反向代理配置中添加一些配置信息,目的将客户端的真实ip和域名传递到应用程序中. nginx反向代理配置时,一般会添加下面的配置: proxy_set_header Host $host;      proxy_set_header X-Real-IP $remote_addr;      proxy_set_header REMOTE-HOST $remote_…
文件目录: ipLocation -----qqwry ----------QQWry.Dat -----ipCity.class.php ipCity.class.php文件代码: <?php class ipCity { /** * 根据ip地址获取对应所在城市 * @param type $userip 用户IP地址 * @return string */ public function getCity( $userip, $dat_path = '' ) { //IP数据库路径,这里用的…
为了实现中关村在线商品报价中通过用户的地理位置信息显示相应的报价. 示例地址:http://detail.zol.com.cn/lens/index224693.shtml 现把我做的使用asp.net实现的代码贴出来,与大家共讨之. 第一步: 需要的工具:纯真 IP地址库 下载地址:http://www.baidu.com/s?ie=utf-8&bs=asp.net+%E8%8E%B7%E5%8F%96%E7%94%A8%E6%88%B7%E5%85%AC%E7%BD%91IP&f=8&…
只适用于IPV4 inet_addr函数将用点分十进制字符串表示的IPv4地址转化为用网络字节序整数表示的IPv4地址. 失败时返回INADDR_NONE. inet_aton函数完成和inet_addr同样的功能,但是将转化结果存储于参数inp指向的地址结构中. 成功返回1,失败返回0. inet_ntoa函数将用网络字节序整数表示的IPv4地址转化为用点分十进制字符串表示的IPv4地址. 该函数内部用一个静态变量存储转化的结果,函数返回值指向该静态内存,因此inet_ntoa是不可重入的.…
方法1:IP地址转换为整数:比如"192.168.1.254",以点为分割,将192 168 1 254保存在一个int a[4]数组里,然后通过unsigned int nResult = (a[3] << 24) + (a[2] << 16) + (a[1] << 8) + a[0]得到一个无符号32位整数. 整数转换为IP地址:把这个整数转换成一个无符号32位二进制数.从左到右,每八位进行一下分割,得到4段8位的二进制数,把这些二进制数转换成整…
1.获取本地IP(有可能是 内网IP,192.168.xxx.xxx) /** * 获取本地IP * * @return */ public static String getLocalIpAddress() { try { Enumeration<networkinterface> en = NetworkInterface .getNetworkInterfaces(); while (en.hasMoreElements()) { NetworkInterface ni = en.nex…
习题4-5 IP网络(IP Networks, ACM/ICPC NEERC 2005, UVa1590) 可以用一个网络地址和一个子网掩码描述一个子网(即连续的IP地址范围).其中子网 掩码包含32个二进制位,前32-n位为1,后n位为0,网络地址的前32-n位任意,后n位为0. 所有前32-n位和网络地址相同的IP都属于此网络. 例如,网络地址为194.85.160.176(二进制为11000010|01010101|10100000|10110000), 子网掩码为255.255.255.…
using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Net.NetworkInformation; using System.Threading; namespace Manager.Common { public static class NetCommon{ /// <summary> /// 验证IP地址字符串的正确性 /// </summa…
Linux下获取本机IP地址的代码,返回值即为互联网标准点分格式的字符串. #define ETH_NAME "eth0" //获得本机IP地址 char* GetLocalAddress() { int sock; struct sockaddr_in sin; struct ifreq ifr; sock = socket(AF_INET, SOCK_DGRAM, ); ) { perror("socket"); return NULL; } strncpy(i…
思路 将IP地址按"."分隔,提取"."之间的每个数,然后根据提取出的列从左至右进行主要字段及次要字段排序 公式说明 返回一个字符串在另一个字符串中出现的起始位置. FIND(要查找的字符串,被查找字符串,[开始位置,默认1]) 从一个文本字符串的第一个字符开始返回指定个数的字符. LEFT(字符串,[字符个数]) 从文本字符串的指定位置开始,返回指定长度的字符串. MID(字符串,开始位置,字符数) 套用公式 第一个"."的位置 =FIND(&…
任何语言都通用的方法转换 IP 地址 a.b.c.d ==> a***+b**+c*+d ===> *(c+*(b+*a)) +d 示例: ***+**+*+ ===> *( +*(+*))+ .net 提供的方法转换 IP 地址 // 字符串转换为数字 System.Net.IPAddress ipaddress = System.Net.IPAddress.Parse("72.167.1 24.214"); long dreamduip = ipaddress.A…
当前备份软件比较流行,其中用到的关键技术是IP 地址漂移, 实际上IP地址漂移技术是利用共享的“虚拟”IP地址,当本地进行节点切换与路由切换,使另一端的发送和收方端没有感觉到本地节点地址有变化,保证了通信的连续性,起到断点保护的功效.      举例说明:假设最简单的主从方式.单网卡的情况下,双机系统要占用3个网络地址.主机一地址为200.10.20.1,主机二的地址为200.10.20.2, 同时,还应该有一个“虚拟”IP地址,该地址为工作IP地址,用来做“漂移”,即工作地址为200.10.2…
原文地址:http://yushine.iteye.com/blog/1717586 推荐实用IP138 http://www.baidu.com/s?wd=IP&rsv_spt=1&issp=1&f=8&rsv_bp=0&ie=utf-8&tn=19045005_9_pg&rsv_enter=1&rsv_sug3=2&rsv_sug4=60&rsv_sug1=1&rsv_sug2=0&inputT=520  …
网络层 首先明确一点,并不是所有的网络之间传输数据都需要mac地址和ip地址,比如说点对点线路之间的通信就没有MAC地址,网络层使用ipx协议时就没有ip地址,但是在当前的主流网络中,我们都使用ip地址和mac地址 既然mac地址唯一,为什么还要有IP地址? 之前我们提到,mac地址是唯一的,那理论上,在任何两个设备之间,我应该都可以通过mac地址发送数据,为什么还需要ip地址? mac地址就好像个人的身份证号,人的身份证号和人户口所在的城市,出生的日期有关,但是和人所在的位置没有关系,人是会移…