实用代码-C#之IP地址和整数的互转
时间:2022-04-23
本文章向大家介绍实用代码-C#之IP地址和整数的互转,主要内容包括源码、测试、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
源码
1 [StructLayout(LayoutKind.Explicit)]
2 public struct IP
3 {
4 public IP(UInt32 value)
5 {
6 this._text1 = 0;
7 this._text2 = 0;
8 this._text3 = 0;
9 this._text4 = 0;
10 this._value = value;
11 }
12 public IP(Byte text1, Byte text2, Byte text3, Byte text4)
13 {
14 this._value = 0;
15 this._text1 = text1;
16 this._text2 = text2;
17 this._text3 = text3;
18 this._text4 = text4;
19 }
20 [FieldOffset(0)]
21 private UInt32 _value;
22 [FieldOffset(0)]
23 private Byte _text1;
24 [FieldOffset(1)]
25 private Byte _text2;
26 [FieldOffset(2)]
27 private Byte _text3;
28 [FieldOffset(3)]
29 private Byte _text4;
30
31 public UInt32 Value
32 {
33 get { return this._value; }
34 set { this._value = value; }
35 }
36 public Byte Text1
37 {
38 get { return this._text1; }
39 set { this._text1 = value; }
40 }
41 public Byte Text2
42 {
43 get { return this._text2; }
44 set { this._text2 = value; }
45 }
46 public Byte Text3
47 {
48 get { return this._text3; }
49 set { this._text3 = value; }
50 }
51 public Byte Text4
52 {
53 get { return this._text4; }
54 set { this._text4 = value; }
55 }
56
57 public override string ToString()
58 {
59 return String.Format("{0}.{1}.{2}.{3}", this._text1.ToString(), this._text2.ToString(),
60 this._text3.ToString(), this._text4.ToString());
61 }
62
63 public static implicit operator IP(UInt32 value)
64 {
65 return new IP(value);
66 }
67 public static explicit operator UInt32(IP ip)
68 {
69 return ip._value;
70 }
71 }
测试
1 class Program
2 {
3 static void Main(string[] args)
4 {
5 IP ip = new IP(192,168,1,1);
6 Console.WriteLine(ip);
7 UInt32 value = (UInt32)ip;
8 Console.WriteLine(value);
9 Console.WriteLine(ip.Value);
10 IP ip2 = (IP)(1234567);
11 Console.WriteLine(ip2);
12
13 Console.ReadKey();
14 }
15 }
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(五)讲一下maven
- Thinking in React
- 【Java提高十六】集合List接口详解
- JS的内建函数reduce
- Error: Cannot find module 'gulp-clone'问题的解决
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(四)代码简化
- Angular源码分析之$compile
- TensorFlow实例: 手写汉字识别
- iOS引入JavaScriptCore引擎框架(一)
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(三)搭建步骤
- iOS引入JavaScriptCore引擎框架(二)
- Java基础-03(01).总结运算符、键盘录入、if语句
- 使用git恢复未提交的误删数据
- Java web图片上传和文件上传
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 初识HTML
- iOS 点击按钮复制文本
- AntUI滑块Sliders
- AntUI卡片Cards
- AntUI常规Forms表单
- 二叉树:看看这些树的最大深度
- C++核心准则SF.5: .cpp文件必须包含定义它接口的.h文件
- C++核心准则SF.6:(只)为转换,基础库或在局部作用域内部使用using namspace指令
- C++核心准则SF.7:不要在头文件中的全局作用域中使用using namespace指令
- 二叉树:看看这些树的最小深度
- Hive初体验
- Hive数据的存储以及在centos7下进行Mysql的安装
- 一个改进的数学学习工具
- 配置hive的元数据到Mysql中
- 二叉树:我有多少个节点?