开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 223|回复: 5
收起左侧

[已解决] SunnyNet 如何写脚本

 关闭 [复制链接]
结帖率:95% (37/39)
发表于 2025-1-7 14:18:42 | 显示全部楼层 |阅读模式   山东省临沂市
9精币
SunnyNet ,如何直接使用程序自带的脚本编辑功能,将获取到的指定json,转发给某接口。
请大佬们给写句例子

最佳答案

查看完整内容

示例里面找找 又加密提交 有返回数据类型 [mw_shl_code=javascript,true]package main //仅允许使用官方包 import ( "bytes" "strings" ) // 脚本最下方定义了一些常用函数 // 请勿修改此结构体 type HTTP struct { uniqueId int `json:"uniqueId"` //请求唯一ID Break bool `json:"Break"` //是否需要设置断点调试,设置后可以在软件界面修改数据 Display bool ...

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:100% (103/103)

签到天数: 19 天

发表于 2025-1-7 14:18:43 | 显示全部楼层   浙江省温州市
示例里面找找 又加密提交 有返回数据类型
[JavaScript] 纯文本查看 复制代码
package main

//仅允许使用官方包
import (
        "bytes"
        "strings"
)

// 脚本最下方定义了一些常用函数

// 请勿修改此结构体
type HTTP struct {
        uniqueId int                        `json:"uniqueId"` //请求唯一ID
        Break    bool                       `json:"Break"`    //是否需要设置断点调试,设置后可以在软件界面修改数据
        Display  bool                       `json:"Display"`  //是否需要显示到列表中 [仅Type=1有效]
        Type     int                        `json:"Type"`     //1=发起请求,2=请求完成,3=请求失败 [不可修改]
        PID      int                        `json:"PID"`      //由哪个进程发送的数据,若是为0表示通过代理连接
        URL      string                     `json:"URL"`      //[仅Type=1 可修改]请求的URL
        Method   string                     `json:"Method"`   //[仅Type=1 可修改]
        Header   http.Header                `json:"Header"`   //请求的协议头
        Body     []byte                     `json:"Body"`     //请求的Body
        SetAgent func(ProxyUrl string) bool `json:"-"`        //设置代理,[仅Type=1时有效],格式 socket5://admin:123456@127.0.0.1:8888 或 http://admin:123456@127.0.0.1:8888
        Response struct {                   //[如果Type=1 操作此对象数据,将不发出请求]
                Header    http.Header `json:"Header"`    //响应的协议头
                Body      []byte      `json:"Body"`      //响应的数据
                StateCode int         `json:"StateCode"` //响应的状态码
        } `json:"Response"`
}

// 脚本回调事件 -> HTTP发起请求、HTTP响应请求、HTTP请求错误
func HttpRequestCallbackFunction(Sunny *HTTP) {

        //在URL中查找指定字符串

        if Sunny.Type == 3 {
                //默认为true,修改为false,不显示到列表中
                Sunny.Display = false
        }
        if Sunny.Type == 1 {
                Index := strings.Index(Sunny.URL, "baidu.com/123456")
                if Index != -1 {
                        HTTPResponse200JSon(Sunny)
                }
        }
}

// 请勿修改此结构体
type WebSocket struct {
        uniqueId         int                                     //请求唯一ID
        Display          bool                                    //是否需要显示到列表中 [仅Type=2、3有效]
        Type             int                                     //1=连接成功,2=客户Duan发送数据,3=客户Duan收到数据,4=连接断开 [不可修改]
        PID              int                                     //由哪个进程发送的数据,若是为0表示通过代理连接
        URL              string                                  //连接的URL
        Method           string                                  //连接时的Method 一般为 GET
        Header           http.Header                             //连接时携带的协议头
        MessageType      int                                     //Websocket消息Body的类型1=Text 2=Binary 8=Close 9=Ping 10=Pong
        Body             []byte                                  //即将发送、接收的数据 //如果将数据修改未空,表示取消本次发送、接收
        SendDataToServer func(MessageType int, data []byte) bool //向服务器发送数据的函数
        SendDataToClient func(MessageType int, data []byte) bool //向客户Duan发送数据的函数
        Close            func() bool                             //关闭、断开此WebSocket会话
}

// WebSocket回调事件 -> 发送消息、收到消息、连接成功、连接断开
func WebSocketCallbackFunction(Sunny *WebSocket) {
        if Sunny.Type == 2 {
                Log(string(Sunny.Body))
        }
}

// 请勿修改此结构体
type TcpSocket struct {
        uniqueId         int                          //请求唯一ID
        Display          bool                         //是否需要显示到列表中 [仅Type=2、3有效]
        Type             int                          //0=即将连接,1=连接成功,2=客户Duan发送数据,3=客户Duan收到数据,4=连接断开
        PID              int                          //由哪个进程发送的数据,若是为0表示通过代理连接
        Body             []byte                       //即将发送、接收的数据 //如果将数据修改未空,表示取消本次发送、接收
        LocalAddress     string                       //本地地址
        RemoteAddress    string                       //远程地址
        SetConnectionIP  func(NewAddress string) bool //重定向到新地址,[仅Type=0时有效]
        SetAgent         func(ProxyUrl string) bool   //设置代理,[仅Type=0时有效],格式socket5://admin:123456@127.0.0.1:8888
        SendDataToServer func(data []byte) bool       //向服务器发送数据的函数
        SendDataToClient func(data []byte) bool       //向客户Duan发送数据的函数
        Close            func() bool                  //关闭、断开此TCP会话
}

// tcp回调事件 -> 即将连接、发送消息、收到消息、连接成功、连接断开
func tcpCallbackFunction(Sunny *TcpSocket) {
        //Sunny.SetAgent("socket5://127.0.0.1:2022")
        if Sunny.Type == 2 {
                Log(string(Sunny.Body))
        }
}

type UdpSocket struct {
        Display       bool   //是否需要显示到列表中 [仅Type=2、3有效]
        uniqueId      int    //请求唯一ID
        Type          int    //1=客户Duan发送数据,2=客户Duan收到数据,3=连接断开
        PID           int    //由哪个进程发送的数据,若是为0表示通过代理连接
        LocalAddress  string //本地地址
        RemoteAddress string //远程地址
        Body          []byte //即将发送、接收的数据 //如果将数据修改未空,表示取消本次发送、接收
}

// udp回调事件 -> 发送消息、收到消息、连接断开
func udpCallbackFunction(Sunny *UdpSocket) {
        if Sunny.Type == 2 {
                Log(string(Sunny.Body))
        }
}

//内置函数
/*
----------------------------------------------------------------------------------------------------------------
打印数据
            Log(args1,args2)    可在左侧查看脚本日志,参数数量不限,参数类型不限,无返回值
----------------------------------------------------------------------------------------------------------------
加密数据
            GoMD5(data,key)     取数据MD5,返回值:字节数组([]byte)
                data:要加密的数据,类型可以是string 也可以是[]byte
                key :可不传,传入表示取HMAC MD5,传入类型可以是string,也可以是[]byte

            GoSHA1(data,key)     取数据SHA1,返回值:字节数组([]byte)
                data:要加密的数据,类型可以是string 也可以是[]byte
                key :可不传,传入表示取HMAC SHA1,传入类型可以是string,也可以是[]byte

            GoSHA256(data,key)     取数据SHA256,返回值:字节数组([]byte)
                data:要加密的数据,类型可以是string 也可以是[]byte
                key :可不传,传入表示取HMAC SHA256,传入类型可以是string,也可以是[]byte

            GoSHA512(data,key)     取数据SHA512,返回值:字节数组([]byte)
                data:要加密的数据,类型可以是string 也可以是[]byte
                key :可不传,传入表示取HMAC SHA512,传入类型可以是string,也可以是[]byte

            GoHexEncode(data)     十六进制编码,返回值:字符串(string)
                data:要操作的数据,类型可以是string 也可以是[]byte

            GoHexDecode(data)     十六进制解码,返回值:字节数组([]byte)
                data:要操作的数据,类型是string

            GoBase64Encode(data)     Base64编码,返回值:字符串(string)
                data:要操作的数据,类型可以是string 也可以是[]byte

            GoBase64Decode(data)     Base64编码,返回值:字节数组([]byte)
                data:要操作的数据,类型是string

            GoRsaPrivateDecrypt(key, data)  RSA私钥解密 两个返回值
                                                       返回值1:解密结果 类型 []byte
                                                       返回值2:错误信息 类型 error 成功等于 nil
                key:私钥    格式"-----BEGIN RSA PRIVATE KEY----- ....... -----END RSA PRIVATE KEY-----"
                data:要操作的数据,类型是[]byte

            GoRsaPublicEncrypt(key, data)  RSA公钥加密 两个返回值
                                                       返回值1:加密结果 类型 []byte
                                                       返回值2:错误信息 类型 error 成功等于 nil
                key:公钥    格式"-----BEGIN PUBLIC KEY----- ..... -----END PUBLIC KEY-----"
                data:要操作的数据,类型是[]byte


----------------------------------------------------------------------------------------------------------------
发起HTTP请求
            GoHTTPRequest(method, url , body ,header)     发起HTTP请求,共有三个返回值:
                                                    返回值1:响应的Body    类型:([]byte)
                                                    返回值2:响应的Header  类型:(http.Header)
                                                    返回值3:错误信息      类型:(error)
                method: 请求方式 例如:"POST","GET" 等               类型:字符串(string)
                url:    请求地址 例如:"https://baidu.com/123456"    类型:字符串(string)
                body:   提交数据 类型:[]byte 或 字符串(string)
                header: 请求地址 例如:"https://baidu.com/123456"    类型:http.Header    (这个参数可忽略不传)

----------------------------------------------------------------------------------------------------------------
AES、DES 加密解密
        GoAESCBCEncode(key,iv,Padding, data)    AES CBC 加密
        GoAESCBCDecrypt(key,iv,Padding, data)   AES CBC     解密
        GoAESECBEncode(key,Padding, data)       AES EBC 加密
        GoAESECBDecrypt(key,Padding, data)      AES EBC     解密
        GoDESCBCEncode(key,iv,Padding, data)    DES CBC 加密
        GoDESCBCDecrypt(key,iv,Padding, data)   DES CBC     解密
        GoDESECBEncode(key,Padding, data)       DES EBC 加密
        GoDESECBDecrypt(key,Padding, data)      DES EBC     解密
        Go3DESCBCEncode(key,iv,Padding, data)   3DES CBC 加密
        Go3DESCBCDecrypt(key,iv,Padding, data)  3DES CBC    解密
        Go3DESECBEncode(key,Padding, data)      3DES EBC 加密
        Go3DESECBDecrypt(key,Padding, data)     3DES EBC    解密

以上函数参数一致:
    key         可以是字符串(string)也可以是字节数组([]byte)
    iv          可以是字符串(string)也可以是字节数组([]byte)
    Padding     类型字符串 "NoPadding" "Zero" "Iso10126" "AnsiX923" "Iso97971" "pkcs5"
    data        类型字节数组([]byte)

返回值:(两个返回值)
        返回值1:加密/解密的的字节数组([]byte)
        返回值2:错误信息 成功返回nil
----------------------------------------------------------------------------------------------------------------
HTTP请求快速响应

    HTTPResponse404(Sunny *HTTP)        传入HTTP回调函数的Sunny对象   响应状态码404,没有内容
    HTTPResponse200(Sunny *HTTP)        传入HTTP回调函数的Sunny对象   响应状态码200,没有内容
    HTTPResponse200IMG(Sunny *HTTP)     传入HTTP回调函数的Sunny对象   响应状态码200,内容为1像素的图片
    HTTPResponse200Array(Sunny *HTTP)   传入HTTP回调函数的Sunny对象   响应状态码200,响应空的JSON数组
    HTTPResponse200JSon(Sunny *HTTP)    传入HTTP回调函数的Sunny对象   响应状态码200,响应空的JSON对象
----------------------------------------------------------------------------------------------------------------
数据操作

    StringReplaceAll(data, old, new)    返回值:替换后的字符串(string)
        data:类型 字符串(string)    原始文本
        old: 类型 字符串(string)    要替换的旧文本
        new: 类型 字符串(string)    要替换的新文本

    BytesReplaceAll(data, old, new)    返回值:替换后的字节数组([]byte)
        data:类型 字节数组([]byte)    原始字节数组
        old: 类型 字节数组([]byte)    要替换的旧字节数组
        new: 类型 字节数组([]byte)    要替换的新字节数组

    Contains(a,b)        返回值:逻辑型(bool)    a中是否包含b
        a:字符串(string) 或 字节数组([]byte)
        b:字符串(string) 或 字节数组([]byte)

    StringIndex(a,b)     返回值:整数型(int)     a中不存在b,返回-1
        a:字符串(string)
        b:字符串(string)

    BytesIndex(a,b)     返回值:整数型(int)      a中不存在b,返回-1
        a:字节数组([]byte)
        b:字节数组([]byte)

    BytesAdd(a,b)       返回值:字节数组([]byte)     a + b 返回新的字节数组
        a:字节数组([]byte)
        b:字节数组([]byte)

    ReadFile(filePath)     返回值:字节数组([]byte) 读取本地文件
        filePath:字符串(string)   本地文件路径

    WriteFile(filePath,data)     返回值:逻辑型(bool) 写到本地文件 成功返回true
        filePath:字符串(string)   本地文件路径
        data:    要写入的数据,可以是字节数组([]byte) 或 字符串(string)
----------------------------------------------------------------------------------------------------------------
其他操作

    GoGetPidName(pid) 返回值:字符串(string),Pid 对应的进程名称,失败返回空文本
        pid:整数类型 请传入回调函数中的PID,例如Sunny.PID


*/


评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:100% (103/103)

签到天数: 19 天

发表于 2025-1-7 15:20:58 | 显示全部楼层   浙江省温州市
  
// 假设你已经获取到了 JSON 数据,存储在变量 jsonData 中
var jsonData = {
"name": "John",
"age": 30,
"city": "New York"
};
// 转换 JSON 对象为 JSON 字符串
var jsonString = JSON.stringify (jsonData);
// 设置要转发的接口 URL
var url = "http://example.com/api/endpoint";
// 使用 SunnyNet 的 HTTP 请求功能发送 POST 请求
SunnyNet.Http.Post (url, jsonString, function (response) {
// 处理响应数据
console.log ("Response status code: " + response.StatusCode);
console.log ("Response body: " + response.Body);
});

回复

使用道具 举报

结帖率:95% (37/39)

签到天数: 8 天

 楼主| 发表于 2025-1-7 16:34:23 | 显示全部楼层   山东省临沂市
熬夜 发表于 2025-1-7 15:20
[e=0]// 假设你已经获取到了 JSON 数据,存储在变量 jsonData 中
var jsonData = {
    "name": "John",

大佬。我是直接在sunnynet 脚本编辑器里面。粘贴上这些就可以吗
回复

使用道具 举报

结帖率:100% (103/103)

签到天数: 19 天

发表于 2025-1-7 16:38:50 | 显示全部楼层   浙江省温州市
它里面有很多示例 你要根据自己要求改 360截图20250107163829536.jpg
回复

使用道具 举报

结帖率:95% (37/39)

签到天数: 8 天

 楼主| 发表于 2025-1-7 16:50:46 | 显示全部楼层   山东省临沂市
熬夜 发表于 2025-1-7 16:38
它里面有很多示例 你要根据自己要求改

明白了大哥。刚才弄了下,差不多了。然后如何把获取到的Sunny.Response,转换成文本json啊。返回的好像是字节集,都是数字。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表