零基础手把手教你写NFT抢购软

这篇具有很好参考价值的文章主要介绍了零基础手把手教你写NFT抢购软。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

由于之前写过几篇文章,但是个人不是很满意,所以这次我打算把所有的知识汇总成一篇文章。可能会有很多地方写的不是很好,欢迎大家评论指出,我后续修正。
个人vx:http://wc.ljlju.cn/4ZGETK

抢购软件原理

我们在点击抢购按钮的时候,会向平台的服务器发送HTTP请求,这条HTTP请求会携带你的账号信息(token或cookie)商品的id、数量、支付密码等等发送到服务器。服务器接收到请求后,会进行执行抢购的操作,然后再返回结果,告诉你是否抢购结果(抢购成功、库存不足、服务器异常……)。

零基础手把手教你写NFT抢购软

我们的抢购软件,就是跳过了点击抢购按钮的步骤,直接向平台服务器发送抢购的HTTP请求,通过软件的循环发送,可以实现一秒钟发送几十条几百条抢购的HTTP请求,只要有一条HTTP请求被平台服务器处理成功并且返回结果为下单成功,则为抢到了商品。这种方式可比手动或者连点器强很多!!!

查看和分析HTTP请求

这里我直接用某台子进行学习讲解,大家切勿进行非法的操作。

打开下方网址:https://m.eryday.fun

点击键盘的F12,弹出调试窗口

零基础手把手教你写NFT抢购软

零基础手把手教你写NFT抢购软

接下来大家点击网络

零基础手把手教你写NFT抢购软

好了,这时候咋们点击我的,然后随便输入手机号、输入验证码、点击发送验证码按钮,这个时候我们可以观察到有这么一个接口

零基础手把手教你写NFT抢购软

这个就是你点击获取验证码按钮后,请求给后端的接口,我们接着点开他

零基础手把手教你写NFT抢购软

对于上图我们一般需要关注的点有下面三个:

  1. 请求的URL地址:https://m.eryday.fun/api/verify-code/send
  2. 请求方法:GET
  3. Content-type:application/json

这个是发送验证码接口,用户这时候还没有登录,所有请求头并没有token选项,后面会给大家讲到。

我们先点开负载看看里面是什么内容,负载里面的内容就是请求体

零基础手把手教你写NFT抢购软

通过观察,我们发下了一下信息:

mobile:"13333333333" (我们输入的手机号)
id: "Jo9lbMldS5Gf6naD5KbAzA" (不确定是什么参数)
type:1(类型,这个应该是固定的)
captcha:x526(我们刚刚输入的验证码)

我们再点开响应看看里面的内容

再点开响应可以看到登录的结果

零基础手把手教你写NFT抢购软

我们可以看到,这个就是点击**”发送验证码“按钮后,接口返回的信息。通过返回信息我们可以知道这个验证码是发送失败的,因为我们的手机号输入的比较6,触发了风控机制,接下来我们刷新页面**输入一个正常的手机号码,再点击发送验证码按钮,然后观察观察请求接口的情况。

零基础手把手教你写NFT抢购软

上面框住的四条请求,就是我们从输入手机号、验证码到点击发送验证码按钮这个过程的所有请求了,我们一一点开请求,看看他们之间是否有联系

零基础手把手教你写NFT抢购软

零基础手把手教你写NFT抢购软

零基础手把手教你写NFT抢购软

零基础手把手教你写NFT抢购软

相信大家已经发下了,上面我们未知的id的数据,就是获取图片验证码之后的返回的id。到此,我们就分析明白了,这个网站发送验证码的所有逻辑。接下来我们来缕一缕。

第一步:请求图片验证码接口,获取图片验证码

请求URL:https://m.eryday.fun/api/captcha/graph
请求方法:POST
请求头:content-type: application/json
请求体:{"type":1,"fontSize":20,"width":100,"height":40}
接口响应:
{
    "code": "0",
    "data": {
        "id": "xV5ZjLU8QWS2wehcnNk1Mw",
        "content": "data:image/png;base64,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"
    },
    "success": true,
    "ext": {
        "executionTime": "3",
        "currentDate": "2023-04-14T00:02:42.023+08:00"
    },
    "msg": "操作成功"
}

第二步:发送验证码

请求URL:https://m.eryday.fun/api/verify-code/send
请求方法:POST
请求头:content-type: application/json
请求体:{"mobile":"13553232231","type":1,"captcha":"mhru","id":"xV5ZjLU8QWS2wehcnNk1Mw"}
接口响应:
{
    "code": "0",
    "data": null,
    "success": true,
    "ext": {
        "executionTime": "390",
        "currentDate": "2023-04-14T00:02:48.629+08:00"
    },
    "msg": "验证码已发送到你的手机,请查收"
}

通过简单的操作,我们就能分析出来,这个平台发送验证码是请求了哪个接口,提交了拿些数据。那么我们如果想通过软件的方式去实现,那么原理就是我们也去请求这些接口,只是把mobile这个参数的值,改成我们自己输入的手机号,即可模拟发送该接口。写抢购软件也是一样的道理,先找出点击抢购按钮的接口参数,我们在通过软件模拟出一样的参数,然后循环不断的像平台发送抢购请求,从而达到快人一步的目的。

接下来我希望大家可以举一反三,分析一下该平台登录接口的信息。

零基础手把手教你写NFT抢购软

通过分析登录的接口,我们就可以获取到用户的token的值,那么在后续的所有请求中,在请求头携带该token,就相当于是该用户发起的请求,平台是通过这个token,来关联这个请求到底是哪个用户发起的。

零基础手把手教你写NFT抢购软

我们可以看到后续的请求都会在请求体携带这个x-token(不同网站不同的命名),用来判断是哪个用户和是否是登录的状态。

常见HTTP请求

一般的HTTP请求为GET和POST请求。通常可以这样子理解,我需要向服务器获取数据的则为GET请求,我要提交数据给服务器的为POST请求。

例如:

GET请求:获取用户信息、获取商品信息。

PSOT请求:登录账号、下单商品。

HTTP请求又分为请求头响应体

GET方式常见请求头:

GET /login/person?name=liangjaing&password=123123 HTTP/1.1  //请求地址
Host: www.ljlju.cn //请求的目的地
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)  //浏览器类型
Gecko/20050225 Firefox/1.0.1
Connection: Keep-Alive //可以不用理解

POST方式常见请求头(application/x-www-form-urlencoded

POST test/persion HTTP/1.1
Host: www.ljlju.cn
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Content-Type: application/x-www-form-urlencoded //请求类型
Content-Length: 40
Connection: Keep-Alive
Cookie: xxxxxx
Token: xxxxxx //用户身份标识 拿到了token或者cookie就相当于登录了这个账号

name=liangjiang&password=123123 //请求体

POST方式常见请求头(application/json

POST test/persion HTTP/1.1
Host: www.ljlju.cn
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Content-Type: application/json //请求类型
Content-Length: 40
Connection: Keep-Alive
Cookie: xxxxxx
Token: xxxxxx //用户身份标识 拿到了token或者cookie就相当于登录了这个账号

{"name": "liangjiang", "mima": "123123"} //请求体

响应体就是服务器处理的结果,一般成功的code值为200,抢购的结果会在响应体中展现出来。

{"success":false,"code":20001,"message":"账户密码错误","data":{}}

手动模拟请求

如果我们最终是用易语言来编写抢购软件的话,建议用精易编程助手来模拟请求。

软件链接
https://wws.lanzouy.com/b0fft39wj
密码:c5cx

零基础手把手教你写NFT抢购软

零基础手把手教你写NFT抢购软

我们只需要将上面分析出来的接口的信息,填进去,点击发送请求即可,下面我模拟获取图片验证码的,请求体(提交数据)可以先点击查看源,再复制进去

零基础手把手教你写NFT抢购软

零基础手把手教你写NFT抢购软

零基础手把手教你写NFT抢购软

最后我们获取到的响应正文,和浏览器获取到的响应是一模一样的,这个时候我们手动复制content里面的内容,data:image/png…然后浏览器打开,就能看到图片验证码,我们接着模拟发送验证码的接口,将这次的图片验证码的id和正确的图片验证码作为提交数据。就可以模拟成功发送验证码的请求。

零基础手把手教你写NFT抢购软

零基础手把手教你写NFT抢购软

零基础手把手教你写NFT抢购软

这个时候我们的手机号成功接收到平台的验证码。

然后通过获取的验证码,再进行模拟登录接口,就能够获取到用户的token,从而进行后续的其他操作。这一步我就不演示了,希望大家可以举一反三。

提前获取抢购接口

接下来讲解怎么获取抢购的提前包

我们在写抢购接口的时候往往都得提前去获取,接下来教大家一个百试百灵也是最简单的获取提前包的方法

零基础手把手教你写NFT抢购软

我们点进去看看,记得分析接口。

零基础手把手教你写NFT抢购软

我先说抓提前包的思路

零基础手把手教你写NFT抢购软

还是看这张图,我们需要做的就是在返回结果这里动手脚

首先我们要明白,是什么来控制网站的商品未寄售->寄售中->已售完这三个状态的变化的,其实就是这个返回结果

当我们点击商品进入商品详情的时候,接口会返回该商品的所有信息,当然也就包括了商品的寄售状态

零基础手把手教你写NFT抢购软

我们想要获取提前包,那么就可以在第三步的时候,拦截服务器返回的接口数据,将代表寄售状态的数据改成寄售中,或者直接修改系统返回的寄售时间。本来系统设置该商品的寄售时间为下午2点,那么我们把这个时间改成当前时间,那么这样子就可以获取提前包了。

我们可以看看这个平台的商品详情的返回数据

{
    "code": "0",
    "data": {
        "id": "16",
        "type": 1,
        "itemsLevel": null,
        "title": "KAJA纪念邀请盲盒 ",
        "subtitle": null,
        "mainImgUrl": "https://res10.eryday.fun/rs/product/20230405/aa0448d940058098.png",
        "mainImg": {
            "id": "89",
            "sort": 0,
            "path": "res10/rs/product/20230405/aa0448d940058098.png",
            "url": "https://res10.eryday.fun/rs/product/20230405/aa0448d940058098.png",
            "mediaType": 1,
            "canDownload": false,
            "isMain": false,
            "props": {
                "width": 1024,
                "height": 1024
            }
        },
        "markingPrice": null,
        "price": 9.9,
        "logicStatus": 4, // 逻辑状态 重点关注
        "startTime": "2023-04-09T20:00:00.000+08:00", //开售时间 重点关注
        "endTime": "2023-04-10T00:00:00.000+08:00",
        "issueNumber": 5000,
        "tags": [],
        "author": "",
        "authorImgUrl": null,
        "issuer": "iFun官方",
        "issuerImgUrl": "https://res10.eryday.fun/rs/content/20230220/7e64d39a4836b899.png",
        "hasPreemption": true,
        "preemptionDate": null,
        "rebatePoint": "0",
        "userCanPreemption": null,
        "introImgUrls": [
            "https://res10.eryday.fun/rs/product/20230409/7dd4a6ab4e2da912.png"
        ],
        "detailHeaderMedia": {
            "id": "96",
            "sort": 0,
            "path": "res10/rs/product/20230409/9141040f48f6a397.png",
            "url": "https://res10.eryday.fun/rs/product/20230409/9141040f48f6a397.png",
            "mediaType": 1,
            "canDownload": false,
            "isMain": false,
            "props": {
                "width": 1024,
                "height": 1024
            }
        },
        "detailMedias": [
            {
                "id": "95",
                "sort": 0,
                "path": "res10/rs/product/20230409/7dd4a6ab4e2da912.png",
                "url": "https://res10.eryday.fun/rs/product/20230409/7dd4a6ab4e2da912.png",
                "mediaType": 1,
                "canDownload": false,
                "isMain": false,
                "props": {
                    "width": 1125,
                    "height": 4897
                }
            }
        ],
        "purchaseNotes": "数字文创藏品为虚拟数字商品,而非实物。仅限年满18周岁的中国大陆实名认证用户购买。数字文创藏品的版权由发行方和原创作者拥有,除另行获得版权拥有者书面同意外,用户不得将数字文创藏品用于任何商业用途。本商品一经售出,不支持退换。请勿对数字文创藏品进行炒卖、场外交易、欺诈或以任何其他非法方式进行使用。"
    },
    "success": true,
    "ext": {
        "executionTime": "3",
        "currentDate": "2023-04-15T01:12:32.885+08:00"
    },
    "msg": "操作成功"
}

我们通过观察,可以发现通过修改上面的两个参数中的任意一个,都可以修改商品的寄售状态,从而提前获取抢购接口。

这个时候,咋们的抓包神器就得出场了,由于fiddler安装起来稍微复杂了一下下,这边为了方便演示,就先用另外一个软件,功能都是一样的,目的就是为了在服务器放回数据的这个阶段,将这个请求给拦截住,然后修改里面的数据,再将修改后的数据返回给平台。

我们先在文本框里将返回数据修改好,因为这个商品已经是售完状态了,所以改开始寄售时间肯定是不行了,我们直接改商品状态,先把4改成1

{
    "code": "0",
    "data": {
        "id": "16",
        "type": 1,
        "itemsLevel": null,
        "title": "KAJA纪念邀请盲盒 ",
        "subtitle": null,
        "mainImgUrl": "https://res10.eryday.fun/rs/product/20230405/aa0448d940058098.png",
        "mainImg": {
            "id": "89",
            "sort": 0,
            "path": "res10/rs/product/20230405/aa0448d940058098.png",
            "url": "https://res10.eryday.fun/rs/product/20230405/aa0448d940058098.png",
            "mediaType": 1,
            "canDownload": false,
            "isMain": false,
            "props": {
                "width": 1024,
                "height": 1024
            }
        },
        "markingPrice": null,
        "price": 9.9,
        "logicStatus": 1,
        "startTime": "2023-04-09T20:00:00.000+08:00",
        "endTime": "2023-04-10T00:00:00.000+08:00",
        "issueNumber": 5000,
        "tags": [],
        "author": "",
        "authorImgUrl": null,
        "issuer": "iFun官方",
        "issuerImgUrl": "https://res10.eryday.fun/rs/content/20230220/7e64d39a4836b899.png",
        "hasPreemption": true,
        "preemptionDate": null,
        "rebatePoint": "0",
        "userCanPreemption": null,
        "introImgUrls": [
            "https://res10.eryday.fun/rs/product/20230409/7dd4a6ab4e2da912.png"
        ],
        "detailHeaderMedia": {
            "id": "96",
            "sort": 0,
            "path": "res10/rs/product/20230409/9141040f48f6a397.png",
            "url": "https://res10.eryday.fun/rs/product/20230409/9141040f48f6a397.png",
            "mediaType": 1,
            "canDownload": false,
            "isMain": false,
            "props": {
                "width": 1024,
                "height": 1024
            }
        },
        "detailMedias": [
            {
                "id": "95",
                "sort": 0,
                "path": "res10/rs/product/20230409/7dd4a6ab4e2da912.png",
                "url": "https://res10.eryday.fun/rs/product/20230409/7dd4a6ab4e2da912.png",
                "mediaType": 1,
                "canDownload": false,
                "isMain": false,
                "props": {
                    "width": 1125,
                    "height": 4897
                }
            }
        ],
        "purchaseNotes": "数字文创藏品为虚拟数字商品,而非实物。仅限年满18周岁的中国大陆实名认证用户购买。数字文创藏品的版权由发行方和原创作者拥有,除另行获得版权拥有者书面同意外,用户不得将数字文创藏品用于任何商业用途。本商品一经售出,不支持退换。请勿对数字文创藏品进行炒卖、场外交易、欺诈或以任何其他非法方式进行使用。"
    },
    "success": true,
    "ext": {
        "executionTime": "3",
        "currentDate": "2023-04-15T01:12:32.885+08:00"
    },
    "msg": "操作成功"
}

零基础手把手教你写NFT抢购软

我们先设置系统代理,再拦截响应

零基础手把手教你写NFT抢购软

零基础手把手教你写NFT抢购软

零基础手把手教你写NFT抢购软

发现状态改成了即将开售,那么我们继续改成2试试

零基础手把手教你写NFT抢购软

成功点亮购买按钮,我们点击立即购买。就能够获取到抢购的接口了。

零基础手把手教你写NFT抢购软

按照上面的思路,去分析抢购接口的请求参数、我们后续就可以通过软件生成对应的抢购请求,然后批量发送。

请求URL:https://m.eryday.fun/api/order/trading

请求头:

Accept: */*
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Connection: keep-alive
Content-Length: 61
Content-Type: application/json
Cookie: cna=c4bf69feb31f409c960ec48a4ee23f74; acw_tc=0b68a81a16814951542354451e2d0c5a97f1af858edf8feda8a6d03f44f5ba
Host: m.eryday.fun
Origin: https://m.eryday.fun
Referer: https://m.eryday.fun/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/112.0.0.0
x-app-type: 100
x-appversion: 1.0.9
x-appversionnum: 119
x-device-id: 16814957461176540747
x-device-type: 10
x-token: xxxxxxxxxx--xxxxxxxxxxx // 这里会携带token

请求体:

{"pid":"16","traceId":"487c83c5-bf6e-4c21-a12a-1039a3b30696"}

这个pid就是商品id,可以通过浏览器的地址,有个product_details?id=16获取
那么下面的这个traceId,应该就是平台的加密数据了,那么这个又是下面的知识点了,但是这个后面通过解密发现其实就是一个UUID,相当于一个随机的字符串,我们在手动模拟请求的时候可以随便改几个数据,也可以发送成功

零基础手把手教你写NFT抢购软

这样子我们直接就拿到抢购接口了。大家可以找找其他平台练练手,这个还是很简单的。特别是该发售时间,建议先改这个。百分之99的平台都可以通过这个方法提前获取抢购接口。

破解接口加密的几种常用的方法

因为数藏台子都是赶鸭子上架的,大多数平台的加密措施其实做的并不是很好,也很多根本没有加密的,基本上的关于数藏平台的加密方式,都是相对比较简单的。

下面是比较常见的加密方式和他的一些特征:

MD5加密

这种加密方式是不可逆的,一般用在登录的时候,因为是不可以解密的,所以当你登录的时候将密码通过一定的规则MD5加密之后,传到服务器,服务器会从数据库中获取到你的密码,然后用相同的规则进行MD5加密(比如加一段特定的字符串),然后和你传过来的MD5进行比较,如果一致则登录成功。

假设我的密码是“123456”,一般网站做MD5加密的时候,会在密码后面拼接一串字符串变成“123456liangjiang666”,然后对123456liangjiang666进行MD5加密
加密后的数据为:b5f69f2a0b186354da715d6e80249e2b
这串加密的数据是无法解密的,但是不管加密123456liangjiang666多少次,最终的结果都是b5f69f2a0b186354da715d6e80249e2b

DES / AES 加密

DES 是一种使用密钥加密的算法。该加密算法是一种对称加密方式,其加密运算、解密运算需要使用的是同样的密钥(一组字符串)即可。

这个加密方式我们一般需要关注这三个点

  • Key:为 7 个字节共 56 位,是 DES 算法的工作密钥
  • Data:为 8 个字节 64 位,是要被加密或别解密的数据
  • Mode:为 DES 的工作方式

在JS逆向的时候只需要找到key即可,这块得在视频讲解。

RSA 加密

RSA 加密算法是一种非对称加密算法。

  • 通过公钥加密,使用私钥解密。私钥是通过公钥计算生成的。假设 ABC 三方之间互相要进行加密通信,大家互相之间使用公钥进行信息加密,信息读取时使用各自对应的私钥进行信息加密
  • 用户输入支付密码会通过 RSA 加密

JS逆向的时候找公钥和私钥,一般都会存在前端

base 64 伪加密

Base64 是一种使用 64 位字符来表示任意二进制数据的方法。base64 是一种编码方式而不是加密算法,只是看上去像是加密而已,上面说到的图片验证码,就是base64编码,这个无需解密,转换一下即可。

零基础手把手教你写NFT抢购软

零基础手把手教你写NFT抢购软

对于上面的平台的traceId加密其实就是上图这段,让我们问问chatgpt这是个啥玩意

零基础手把手教你写NFT抢购软

我们用软件生成一下就行了

零基础手把手教你写NFT抢购软

抢购软件的编写

编写抢购软件,可以选择很多语言,易语言、python、java啥的都是可以的,这块我打算放在视频上面讲解,或者去看看我前面几篇文章,我展示下用chatgpt写哈哈

零基础手把手教你写NFT抢购软

零基础手把手教你写NFT抢购软

直接拿下,用易语言编写的话直接软件可以生成,非常方便

零基础手把手教你写NFT抢购软

后续以视频的方式带大家入手抢购软和捡漏软

零基础手把手教你写NFT抢购软文章来源地址https://www.toymoban.com/news/detail-459026.html

到了这里,关于零基础手把手教你写NFT抢购软的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [Kotlin]手把手教你写一个安卓APP(第一章注册登录)

    开发软件:Android Studio 1.创建项目默认选择Empty Activity                                                                      点击Next  2.生成项目设置包名选择开发语言(这里我用的是kotlin)  在生成项目后我们要做的就是添加需要的配置打开我们的app目录下的 buil

    2023年04月23日
    浏览(81)
  • 【Java】手把手教你写学生信息管理系统(窗口化+MYSQL)

                (本项目使用到了数据库的可视化软件DataGrip,需要同学们自行下载并配置环境) 首先我们需要在DataGrip中建立一个student的框架                                                         然后建立一个studenttable表                   

    2024年02月04日
    浏览(41)
  • 【Golang项目实战】手把手教你写一个备忘录程序|附源码——建议收藏

    博主简介: 努力学习的大一在校计算机专业学生,热爱学习和创作。目前在学习和分享:数据结构、Go,Java等相关知识。 博主主页: @是瑶瑶子啦 所属专栏: Go语言核心编程 近期目标: 写好专栏的每一篇文章 前几天瑶瑶子学习了Go语言的基础语法知识,那么今天我们就写个

    2024年02月06日
    浏览(54)
  • 手把手教你写代码——基于控制台的通讯录管理系统(单表)

    本栏目专为入门java学习者设计的一些简单的入门项目 本项目为简单的基于控制台的通讯录管理系统,所需要的环境仅仅为jdk以及mysql(版本不限)!只有一个简单的eclipse软件以及我们的mysql可视化工具(视频使用navicat) 本项目数据库表仅有一个,单表操作,方便学习! 本项

    2024年02月15日
    浏览(45)
  • FPGA之手把手教你写串口协议解析(STM32与FPGA数据互传)

    最近趁热打铁做了一个关于STM32与FPGA通信并且控制高速DA模块产生不同频率信号的正弦波、方波、三角波和锯齿波的项目,从中收获到了很多东西,也踩了一些雷和坑,将分为几篇文章将整个过程分享出来。 这一次准备分享的是对串口数据的解析和赋值。解析的数据由STM32发

    2024年02月06日
    浏览(40)
  • 数据结构:线性表————顺序表的实现、项目和OJ题目(手把手教你写代码)

    🌈 个人主页: 小新_- 🎈个人座右铭:“成功者不是从不失败的人,而是从不放弃的人!”🎈 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝 🏆所属专栏:  话说那些与C++的爱恨情仇   欢迎订阅,持续更新中~~~                                           ✨让小新带着你

    2024年04月16日
    浏览(109)
  • 基于STM32F103RCT6之手把手教你写智能家居项目(2)

            上一节我们简述了智能家居项目,实现了点灯的相关代码编写,还有WIFI模块的固件烧录。 连接什么平台:         我们想要远程控制家具的开关和获取家中的状态,少不了一个可以传输数据的云平台。我认为易监控是一个简单好用的云平台。 怎么连接平台:

    2024年02月20日
    浏览(163)
  • 手把手教你区块链java开发智能合约nft-第一篇

    刚接触区块链开发,使用java开发,真的是太难了,自己一步步摸索,从新手小白一路碰壁,动不动就报错,去网上搜索对应错误,还真什么都搜索不到,摸索了三四个月,今天终于有了一些进展,今天开始分享出来,希望能帮助到需要的朋友 我作为一个java后端的程序员,不

    2024年01月23日
    浏览(58)
  • 手把手教你区块链java开发智能合约nft-第五篇(铸造第一个NFT)

    初学区块链,那真叫一个痛苦并无助。如果没有人带你的话 今天写的这篇是在前面文章基础上写的,初学区块链的朋友建议先看我前面写的文章 手把手教你区块链java开发智能合约nft-第一篇 手把手教你区块链java开发智能合约nft-第二篇(部署第一个NFT智能合约) 手把手教你

    2023年04月08日
    浏览(94)
  • Java基础--手把手教你如何从键盘录入信息

    从键盘录入信息 Scanner 有扫描仪的意思,sc是自己取的名字(有的人喜欢用input), new Scanner 是创建一个Scanner对象, System.in 代表电脑的键盘。 即,扫描电脑的键盘。 将第一步写完,我们在编译器里面看到, Scanner 标红了,报错了! ❓ 为啥报错呢? 我们要使用 Scanner ,需要

    2024年02月11日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包