一个木函是一款强大的手机软件,里面囊括了很多小功能,每一个都基本可以堪称小程序。那么,这些小功能具体是怎么实现的呢?让我们来一起来探讨二维码生成、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查询功能的更多相关文章

  1. Windows phone 8 二维码生成与扫描

    1. 二维码的生成 二维码生成用到了一个第三方的插件(zxing.wp8.0) 根据指定的信息,生成对应的二维码. 代码很简单: bool falg=tbk.Text==""?fa ...

  2. 杂项收集,包括-发邮件、二维码生成、文件下载、压缩、导出excel

    本篇就最近工作解决的问题做个代码收集.包括以下几个方面:发邮件.二维码生成.文件下载.压缩.导出excel.有一种可用的解决方法就好,不求全面,不求原理. 1.发邮件: 命名空间:System.Net ...

  3. 在云平台上基于Go语言+Google图表API提供二维码生成应用

    二维码能够说已经深深的融入了我们的生活其中.到处可见它的身影:但通常我们都是去扫二维码, 曾经我们分享给朋友一个网址直接把Url发过去,如今我们能够把自己的信息生成二维码再分享给他人. 这里就分享一下 ...

  4. Winform窗体实现简单的二维码生成和保存

    二维码的生成需要用到二维码生成的类库,ThoughtWorks.QRCode.dll 步骤: 第一步:下载二维码生成类库,ThoughtWorks.QRCode.dll 第二步:新建winform项目 ...

  5. android 二维码生成+扫描

    android 二维码生成+扫描 1.在Android应用当中,很多时候都要用到二维码扫描,来避免让用户手动输入的麻烦. Google官方自己推出了一个二维码开源项目:ZXing库. 2.这里简单介绍 ...

  6. 玩转Android之二维码生成与识别

    二维码,我们也称作QRCode,QR表示quick response即快速响应,在很多App中我们都能见到二维码的身影,最常见的莫过于微信了.那么今天我们就来看看怎么样在我们自己的App中集成二维码的 ...

  7. C#二维码生成与解码(二)

    本文内容在<C#二维码生成与解码>的基础上增加了纠错级别和Logo图标加入,增加了二维码的功能.关于透明度在这里没有单独显现,因为在颜色里面就已经包含,颜色值由8位8进制构成,最前面的两位 ...

  8. Android开发——Android中的二维码生成与扫描

    0. 前言 今天这篇文章主要描述二维码的生成与扫描,使用目前流行的Zxing,为什么要讲二维码,因为二维码太普遍了,随便一个Android APP都会有二维码扫描.本篇旨在帮助有需求的同学快速完成二维 ...

  9. 二维码生成插件qrious及网站扫码登录的一些理解

    什么是二维码 ​ 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型. ...

随机推荐

  1. HarmonyOS 润和 HiSpark开发套件 免费领!

    让人期盼已久的HarmonyOS 2.0终于在9月10日正式上线啦! 这是一件让众多开发者关注的大事件! 相信不少开发者都已经迫不及待的想上手实操了, 为了满足大家的好奇心, 也希望能有更多开发者了解 ...

  2. Java基础系列-RandomAccess

    原创文章,转载请标注出处:https://www.cnblogs.com/V1haoge/p/10755424.html Random是随机的意思,Access是访问的意思,合起来就是随机访问的意思. ...

  3. Java安全之Commons Collections1分析(二)

    Java安全之Commons Collections1分析(二) 0x00 前言 续上篇文,继续调试cc链.在上篇文章调试的cc链其实并不是一个完整的链.只是使用了几个方法的的互相调用弹出一个计算器. ...

  4. XML节点自动生成简单实例

    有些时候我们在拼装XML的过程中,因为各种拼接会感到非常的麻烦(定义变量模型,自动生成,使用XElement再去组装),我的脑袋感觉都大了,能不能有个稍微比较快捷自动随变量自动生成XML格式的方式,看 ...

  5. 用cmd下载tp5.0版本

    1.首先进入phpstudy的www目录 composer create-project topthink/think=5.0.* pt5.0的名字 --prefer-dist $ composer ...

  6. centos8平台php7.4.2安装phpredis实现对redis的访问

    一,下载phpredis 1,官方下载地址: https://github.com/phpredis/phpredis/releases 2,wget下载 [root@yjweb source]# w ...

  7. centos8使用systemctl管理运行级别

    一,什么是systemd的target? 1,关于systemd/systemctl的相关知识,请移步到这一篇 https://www.cnblogs.com/architectforest/p/12 ...

  8. 【认知服务 Azure Cognitive Service】使用认知服务的密钥无法访问语音服务[ErrorCode=AuthenticationFailure] (2020-08时的遇见的问题,2020-09月已解决)

    问题情形 根据微软认知服务的文档介绍,创建认知服务(Cognitive Service)后,可以调用微软的影像(计算机视觉,人脸),语言(LUIS, 文本分析,文本翻译),语音(文本转语音,语音转文本 ...

  9. Linux命令行bash的快捷键

    提升效率 锁屏 Ctrl + s 敲什么命令没反应,但是敲上去了,屏幕上不做任何反应 Ctrl + q 再解锁 例如: 先Ctrl + s 锁屏 然后在命令行敲入 [root@C8-1 ~]# rm ...

  10. ValidatorException-异常

    Java在发送Https请求的时候,不可避免的会发生SSL证书认证失败 错误信息:sun.security.validator.ValidatorException: PKIX path buildi ...