二维码生成与windows系统IP查询功能
一个木函是一款强大的手机软件,里面囊括了很多小功能,每一个都基本可以堪称小程序。那么,这些小功能具体是怎么实现的呢?让我们来一起来探讨二维码生成、IP查询这两个功能吧!
一、二维码生成
首先,我们来看看里面的一个简单的二维码自定义生成小功能,它进去后的界面是这样的:

我们可以看到:(1)我们可以调节二维码的颜色,也就是可以改变平常时我们看到的二维码是黑色的那块的颜色,以及二维码的背景色,也就是后面默认为白色的部分。
(2)我们可以调节二维码的尺寸和二维码(默认为黑色的那部分)的边距。
了解到具体的应用后,我们用默认模式试试,首先我们生成一个自定义二维码(内容自己定义输入)该效果如图:

然后扫一扫就可以看见自己写的内容啦!效果如图:

是不是很神奇?是不是很好奇?那这样的二维码是如何产生的呢?让我们一起来看看这个小功能是怎么实现的吧!
首先,我们先简单了解一下二维码的原理:
二维码(2-dimensional bar code)是利用某种特定的几何图形按一定的规律在平面(在二维角度上)分布的黑白相间的图形记录数据符号信息的。
它们通常由码制编写而成,如data matrix,maxi code等等;还分有堆叠式(行排式)、阵式等,其中阵式最流行的就是QR CODE了吧。
相比“一维码”也就是条形码来说,二维码可以储存的数据量更大,还可以包含字符、数字及文本等混合的东西;同时还会有一定的容错性,在一部分损坏的同时,还可以正常被取读出来。
现在,我们来探讨一下当下最为流行的QR code:
之所以会这么受大家的欢迎,其中之一的原因是它解码速度快,还可以储存多种类型。下面是结构图(图片来源百度):

为大家科普一下基本信息:
位置探测图形、位置探测图形分隔符、定位图形这三个用于二维码的定位,对每个QR code ,位置基本都是固定存在的,只是可能会因为大小存在一些差异。
校正图形:确定规格,那校正图形的数量和位置也就确定。
格式信息:表示该二维码的纠错级别;一般有L、M、Q、H这几个等级。也就是纠错等级,在一定的规格内,纠错等级越高,那么其真实的数据容量就会越小。在二维码的规格和纠错等级确定的情况下,它所能够容纳的码字总数和纠错码字数就确定了。
版本信息:其实就是二维码的规格,QR code符号共有40规格的矩阵,从21x21(版本1)到177x177(版本40),每一个版本比前一个版本每边增加4个模块。
数据和纠错码字:实际保存的信息和纠错码字。
编码的简要过程:
1.确定要编码的字符类型,选择纠错等级。
2.将数据类型字符转换为位流,每8位一个码字,构成一个数据码字序列,知道了码字序列,就知道了二维码的内容。
3.将码字序列划分成块,根据纠错等级和分块来产生纠错码字,并把纠错码字加入到数据码字序列后面,成为一个崭新的序列。
4.将上面的数据序列按次序分别放进分块中,按照规定的数据分块进行每一块的计算,得出相应的纠错码字区块,把纠错码字区块按顺序构成一个序列,添加到原先的数据码字序列后面。
5.将固定的位置探测图形、位置探测图形分隔符、定位图形以及校正图形和码字模块放入到矩阵当中,并将完整的序列填充到相应规格的二维码矩阵(即相应的版本)的区域中。如:

6.用掩膜图形于编码区域,使二维码图形变成深浅色区域块;并生成相应的格式和版本信息。
最后,如果我们利用Python语言的qrcode库函数,就很容易实现二维码生成的功能,如:

二、国内IP查询
1.了解IP
IP址址不能重复,这个需要限定在一定范围。比如,同一局域网,IP地址是不能重复的。还有就是涉及一个NAT(网络地址转换)的问题。
IP地址分为私有地址和公有地址,私有地址可以自己定义。路由器都有NAT功能,可以将这些私有地址转换为合法的公有IP(IP其实就类似是我们电脑的电话号码一样)。
2.查询IP
其实很简单,类似百度,只要输入IP,就会出现IP查询,如果你用手机查询,那就是你手机本机的IP地址。
Windows有一个系统内置的网络命令,就是“netstat”,来查出对方的IP地址,不过条件是你们得在QQ聊上天才行。实现如下:
首先,单击“开始”或“运行”命令,输入“cmd”命令,进入到MS—DOS状态中,然后执行“netstat -n”命令,当连接状态是“Established”时,表明你的计算机和对方的计算机之间连接成功了。
二维码生成与windows系统IP查询功能的更多相关文章
- Windows phone 8 二维码生成与扫描
1. 二维码的生成 二维码生成用到了一个第三方的插件(zxing.wp8.0) 根据指定的信息,生成对应的二维码. 代码很简单: bool falg=tbk.Text==""?fa ...
- 杂项收集,包括-发邮件、二维码生成、文件下载、压缩、导出excel
本篇就最近工作解决的问题做个代码收集.包括以下几个方面:发邮件.二维码生成.文件下载.压缩.导出excel.有一种可用的解决方法就好,不求全面,不求原理. 1.发邮件: 命名空间:System.Net ...
- 在云平台上基于Go语言+Google图表API提供二维码生成应用
二维码能够说已经深深的融入了我们的生活其中.到处可见它的身影:但通常我们都是去扫二维码, 曾经我们分享给朋友一个网址直接把Url发过去,如今我们能够把自己的信息生成二维码再分享给他人. 这里就分享一下 ...
- Winform窗体实现简单的二维码生成和保存
二维码的生成需要用到二维码生成的类库,ThoughtWorks.QRCode.dll 步骤: 第一步:下载二维码生成类库,ThoughtWorks.QRCode.dll 第二步:新建winform项目 ...
- android 二维码生成+扫描
android 二维码生成+扫描 1.在Android应用当中,很多时候都要用到二维码扫描,来避免让用户手动输入的麻烦. Google官方自己推出了一个二维码开源项目:ZXing库. 2.这里简单介绍 ...
- 玩转Android之二维码生成与识别
二维码,我们也称作QRCode,QR表示quick response即快速响应,在很多App中我们都能见到二维码的身影,最常见的莫过于微信了.那么今天我们就来看看怎么样在我们自己的App中集成二维码的 ...
- C#二维码生成与解码(二)
本文内容在<C#二维码生成与解码>的基础上增加了纠错级别和Logo图标加入,增加了二维码的功能.关于透明度在这里没有单独显现,因为在颜色里面就已经包含,颜色值由8位8进制构成,最前面的两位 ...
- Android开发——Android中的二维码生成与扫描
0. 前言 今天这篇文章主要描述二维码的生成与扫描,使用目前流行的Zxing,为什么要讲二维码,因为二维码太普遍了,随便一个Android APP都会有二维码扫描.本篇旨在帮助有需求的同学快速完成二维 ...
- 二维码生成插件qrious及网站扫码登录的一些理解
什么是二维码 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型. ...
随机推荐
- 4-K8S 部署Java应用及应用程序生命周期管理
1.在kubernetes中部署应用程序流程 准备项目源码-->编译构建-->产出war包,打包到镜像中-->推送到镜像仓库 获取源代码是开发人员提交代码的代码托管地址,有Git.S ...
- C# 主界面的扁平化
如果需要查看更多文章,请微信搜索公众号 csharp编程大全,需要进C#交流群群请加微信z438679770,备注进群, 我邀请你进群! ! ! --------------------------- ...
- intellij idea如何解决javax.servlet.http不存在
正确的解决方法是:对项目名右键,选中Open Mudule Settings--选择左侧的Modules,选择右边的Dependencies--然后点击右侧边栏的绿色"+"号,点击 ...
- SDN实验 3: Mininet 实验——测量路径的损耗率
验 3:Mininet 实验--测量路径的损耗率 一.实验目的 在实验 2 的基础上进一步熟悉 Mininet 自定义拓扑脚本,以及与损耗率相关的设定:初步了解 Mininet 安装时自带的 POX ...
- DM9000时序设置
想了解一下DM9000的移植修改原理,所以分析了一下时序图和引脚连接 首先看一下DM9000的引脚和MINI2440的引脚连接 DM9000 MINI2440 功能描述 SD0 DA ...
- 多测师讲解selenium _enter弹框_高级讲师肖sir
enter # from selenium import webdriver# from time import sleep# drvier=webdriver.Chrome()# url='file ...
- Hash算法简介
Hash算法性质 Hash算法用于计算消息摘要(Message Digest),可以将任意长的输入信息快速地转换为固定长度的输出.在区块链中主要利用了Hash算法的三种性质: 抗冲突性(Collisi ...
- go mod 使用bee工具
https://github.com/beego/bee/releases bee windows https://github.com/beego/bee/releases/download/v1 ...
- 第五章 Linux操作系统关机、重启、注销及其查看ip命令
一.更新系统时间与网络时间同步 1. 安装ntpdate工具 # yum -y install ntp ntpdate 2. 设置系统时间与网络时间同步 # ntpdate cn.pool.ntp ...
- RocketMQ扫盲篇
本篇博客主要参考: <浅入浅出>-RocketMQ 敖丙 APACHE-RocketMQ Gitee RocketMQ官方文档 RocketMQ 实战与进阶 GitChat 又是好久没有写 ...