教你怎样写自定义IP地址算法

通过IP地址可以看到算法规律,写成自定义IP地址,也可以把IP地址转为自定格式的IP地址。也可以用于加密一些明文数字。以下写正反算法:

USE tempdb
GO
IF OBJECT_ID(‘fn_NrToChar‘) IS NOT NULL
 DROP FUNCTION fn_NrToChar
GO
/****************************************************************************************************************************************************************
%%函数名:fn_NrToChar

%%功能:把数字改为字符
****************************************************************************************************************************************************************
%%编写:Roy   2014-12-09

****************************************************************************************************************************************************************/
CREATE FUNCTION fn_NrToChar (
	@Nr BIGINT
	,@NrSystem BIGINT=168				--进制
	,@Split VARCHAR(2)=‘**‘				--分隔符
	,@PartCount BIGINT=5				--分段数
)
RETURNS VARCHAR(50)
AS
BEGIN
	DECLARE @S VARCHAR(50)=‘‘
	WHILE @PartCount>0
		SELECT @[email protected]+CASE WHEN @S>‘‘ THEN @Split ELSE ‘‘ END+RTRIM(@Nr/POWER(@NrSystem,@PartCount)),@[email protected]%POWER(@NrSystem,@PartCount),@[email protected]
	RETURN @S
END
GO
IF OBJECT_ID(‘fn_CharToNr‘) IS NOT NULL
 DROP FUNCTION fn_CharToNr
GO
/****************************************************************************************************************************************************************
%%函数名:fn_CharToNr

%%功能:把字符改为数字
****************************************************************************************************************************************************************
%%编写:Roy   2014-12-09

****************************************************************************************************************************************************************/
CREATE FUNCTION fn_CharToNr (
	@Str VARCHAR(50)
	,@NrSystem BIGINT=168				--进制
	,@Split VARCHAR(2)=‘**‘				--分隔符
	,@PartCount BIGINT=5				--分段数
)
RETURNS BIGINT
AS
BEGIN
	DECLARE @Nr BIGINT=0,@StartLen TINYINT,@StrLen TINYINT
	SELECT @StrLen=LEN(@Split),@StartLen=1
	WHILE @PartCount>0
		SELECT @[email protected]+SUBSTRING(@Str,@StartLen,CHARINDEX(@Split,@[email protected],@StartLen)[email protected])*POWER(@NrSystem,@PartCount),@StartLen=CHARINDEX(@Split,@[email protected],@StartLen)[email protected],@[email protected]
	RETURN @Nr
END
GO

--测试1(以IP地址为例)

SELECT dbo.fn_CharToNr(‘192.168.0.1‘,256,‘.‘,4)
SELECT dbo.fn_NrToChar(827452293376,256,‘.‘,4)

/*
827452293376

192.168.0.1
*/
go
--测试2
DECLARE @i BIGINT=168
SELECT POWER(@i,5)

--133827821568
SELECT dbo.fn_CharToNr(‘167**16**1**6**07‘,DEFAULT,DEFAULT,DEFAULT)
SELECT dbo.fn_NrToChar(22361996620824,DEFAULT,DEFAULT,DEFAULT)
/*
22361996620824

167**16**1**6**7
*/
时间: 2024-11-09 02:02:33

教你怎样写自定义IP地址算法的相关文章

自定义 IP 地址

可以在安装的时候,点击网络配置 1.修改网卡配置 编辑:vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 #描述网卡对应的设备别名,例如ifcfg-eth0的文件中它为eth0 BOOTPROTO=static #设置网卡获得ip地址的方式,可能的选项为static,dhcp或bootp,分别对应静态指定的 ip地址,通过dhcp协议获得的ip地址,通过bootp协议获得的ip地址 BROADCAST=192.168.0.255 #

QML自定义IP地址输入框

QML输入框同样能用正则表达式,在输入ip地址时使用正则来判断输入的正确性 TextField { id: textfield_operation_ip1 x: 492 y: 120 width: 269 height: 61 text: "" visible: true placeholderText: qsTr("请输入IP地址") font.pixelSize: 25 focus:true validator: RegExpValidator{regExp:/

Android UI组件之自定义控件实现IP地址控件

趁着时间挺充裕,就多写几篇博客.每一篇都是学习中的教训.今天在做东西的时候突然想到之前在MFC的时候都会有一个IP地址控件,可能是PC端用的比较多,但是在移动端好像基本没什么用处,但是偶尔也会有项目要用到,毕竟还是有些项目不需要接入互联网,只需要接入企业的内部网络.这个时候为了程序的通用性,我想到的第一个就是在程序中去配置一个网络环境,并将它保存到本地中,这样以后程序每次加载直接去本地中获取值.既然没有已有的控件,那么久自定义好了.存储在本地首先想到的就是sqlite和SharedPrefere

给openvpn客户分配固定ip地址

虽然openvpn提供dhcp服务,但是dhcp是有租约的,到期后会重新分配ip,造成连接中断的问题,所以最好还是给客户端固定一个ip. 思路:开启客户端配置目录,然后为每一个客户建一个配置文件,里面写上ip地址和子网掩码就ok了. 方法: 1.在server.conf文件中增加客户端配目录,ccd可以任意指定: client-config-dir ccd 2.进入ccd目录后,用客户名(就是common name)建立文件. 例如:客户名:litifeng  ip:10.8.0.6 则名为li

连接oracle时localhost可以ip地址不可以

在本机安装了oracle,使用sqlplus和plsqldev连接的时候,tnsname.ora中host写的是localhost,此时连接oracle都没有任何问题,但是外机连接本机,和tnsname.ora中host写成ip地址(192.168.1.110)是,报错ora-12547,没有监听等 解决问题,oracle自带管理工具,程序->oracle-oracle...->配置和移植工具->Net Manager中找到本地,LISTENER,添加一个监听服务地址,然后重启oracl

火狐浏览器插件Modify Headers伪造IP地址

安装插件:先打开火狐浏览器 => 找到下载好的 modify_headers.xpi 插件文件 => 鼠标按住插件文件不放,拖拽到火狐浏览器界面 => 按提示重启浏览器 => 完成安装. 在浏览器右上角点小图标,选择打开“Open ModifyHeaders”,如下图所示. 如图依次选择 Add → 输入 X-Forwarded-For → 自定义IP地址 → 点Add按钮完成添加 最后点击左上角的“Start”开启插件就搞定啦! 文章来源:http://jingyan.baidu

iOS: 如何获取ios设备的当前IP地址

有的时候,我们项目上线后,需要根据ip地址去统计不同地区的用户情况,此时IP地址的收取显得尤其重要,一般情况下,在用户登录时去获取用户的ip是准确的,当然实时追踪ip的变化而统计是更安全可靠的. ip地址长度现在是有区别的,分为IPv4和IPv6.IPv4地址是类似 A.B.C.D 的格式,它是32位,用\".\"分成四段,用10进制表示:而IPv6地址类似X:X:X:X:X:X:X:X的格式,它是128位的,用\":\"分成8段,用16进制表示:可见,IPv6地址

达内-网络工程-IP地址的认识以及二进制与十进制的转换方法

本文整体内容包括以下几个部分: IP地址简要介绍 IP地址的作用 IP地址的表示 2进制与10进制的转换 IP地址的结构 子网掩码 IP地址的管理 IP地址的分类 IP地址的问题 IP地址解决方案 IP地址的简要介绍: 凡是能够上网的设备,必须得有一个 IP 地址:而每一个IP地址,就相当于每一个人都必须有一个名字: 常见的IP地址的样子,比如 TP-Link 无线路由的默认地址:192.168.1.1 IP地址的作用: 在一定范围内,唯一的标识,一个上网的设备:(凡是需要上网的设备,必须得有I

【转】教你如何把家用电脑IP地址固定做服务器

什么是端口映射?端口映射又称端口转发.端口映射过程就如同你家在一个小区里B栋2410室,你朋友来找你,找到小区门口,不知道你住哪层哪号?就问守门的保安,保安很客气的告诉了他你家详细门牌号,这样你朋友很轻松的找到了你家.这个过程就是外网访问内网通过端口映射的形象说法.为什么要做端口映射?目前的网络接入主要有2种:1.ADSL 连接猫再直接连接主机,这种情况主机是直接进行ADSL宽带拨号,连接上网通过运行CMD执行ipconfig /all命令可以查看到,PPP拨号连接所获取到得是一个公网IP地址,