二维码生成与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条形码能存更多的信息,也能表示更多的数据类型. ...
随机推荐
- python中remove函数的坑
摘要:对于python中的remove()函数,官方文档的解释是:Remove first occurrence of value.大意也就是移除列表中等于指定值的第一个匹配的元素. 常见用法: a ...
- ubuntu20 使用命令安装 redis
安装 redis sudo apt-get install redis-server -y 配置文件 vi /etc/redis/redis.conf # 设置端口 port # 设置密码 requi ...
- org.apache.ibatis.ognl.OgnlException: source is null for getProperty(null, "enterpCd")-Mybatis报错
一.问题由来 下午快要下班时,登录测试服务器查看日志信息,看看有没有新的异常信息,如果有的话好及时修改.结果一看果然有新的异常信息. 主要的异常信息如下: 2020-10-13 14:51:03,03 ...
- web中的HTML CSS
HTML 超文本标记语言 页面的结构 首行声明文档类型>根标记>头部标记/主体标记 标记 div 布局 切割 分割 划分区域 spa ...
- docker registry 记录
部署 运行下面命令获取registry镜像 docker pull registry 下载到的版本默认为 docker.io/registry latest 将registry镜像运行并生成一个容器 ...
- 经验分享:Windows10值得推荐的软件,总有一款是你的菜
今天在知乎上看到有人分享wids10推荐好用的软件:今天小编做了一点点的修改和根据自己的使用情况总结出来转发分享给大家: 1.安全放病毒--火绒[推荐] 2.办公软件--office2019[推荐 ...
- Pyrhon-OS库
import os 导入OS模块 print(os.getcwd()) #获取当前路径 print(os.listdir()) #当前路径下文件信息 关于路径 Windows 下的路径采用 (\) 在 ...
- Sentinel流控规则
流控规则 注:Sentinel的监控页面一开始是没有东西,需要对监控的服务发起请求后才会出现 资源名:唯一名称,默认请求路径 针对来源:Sentinel可以针对调用者进行限流,填写微服务名,指定对哪个 ...
- git删除缓存区中文件
删除缓冲区中的文件 git rm --cached "文件路径",不删除物理文件,仅将该文件从缓存中删除: git rm --f "文件路径",不仅将该文件从缓 ...
- C语言单文件模板
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <stri ...