C#中实现校验是否包含中文与http接口地址中解析ip和端口号

场景

Winform/CSharp中实现对Http接口地址、IP地址字符串格式/合法性校验:

Winform/CSharp中实现对Http接口地址、IP地址字符串格式/合法性校验_c# 检查ip格式_霸道流氓气质的博客-CSDN博客

在上面的基础上对某http接口地址(ip加端口号,示例http://127.0.0.1:9092)

进行校验是否包含中文以及解析该地址获取ip和端口号

博客:
霸道流氓气质_C#,架构之路,SpringBoot-CSDN博客

实现

1、字符串中是否包含中文校验

GB2312码,是中华人民共和国国家汉字信息交换用编码,全称《信息交换用汉字编码字符集——基本集》,

由国家标准总局发布,1981年5月1日实施,通行于大陆。新加坡等地也使用此编码。

GB2312收录简化汉字及符号、字母、日文假名等共7445个图形字符,其中汉字占6763个。

GB2312规定“对任意一个图形字符都采用两个字节表示,每个字节均采用七位编码表示”,

习惯上称第一个字节为“高字节”,第二个字节为“低字节”。

GB2312 将代码表分为94个区,对应第一字节;每个区94个位,对应第二字节,

两个字节的值分别为区号值和位号值加32(2OH),因此也称为区位码。

01-09 区为符号、数字区,16-87区为汉字区,10-15区、88-94区是有待进一步标准化的空白区。

GB2312将收录的汉字分成两级:第一级是常用汉字计3755个,置于16-55区,按汉语拼音字母/笔形顺序排列;

第二级汉字是次常用汉字计3008个,置于56-87区,按部首/笔画顺序排列。

故而 GB2312最多能表示6763个汉字。GB2312的编码范围为2121H-777EH,与ASCII有重叠,

通行方法是将GB码两个字节的最高位置1以示区别。

代码实现

        /// <summary>/// 判断句子中是否含有中文/// </summary>/// <param >字符串</param>public bool WordsIScn(string words){string TmmP;for (int i = 0; i < words.Length; i++){TmmP = words.Substring(i, 1);byte[] sarr = Encoding.GetEncoding("gb2312").GetBytes(TmmP);if (sarr.Length == 2){return true;}}return false;}

2、解析如上示例的http接口地址的前缀获取ip和端口号

声明默认值为127.0.0.1和80端口

然后判断是否包含https,分别进行不同长度的截取后面的ip:端口号的内容

其次判断是否包含冒号,不包含则是80端口

包含则按照冒号进行split

这里不允许端口后面继续跟其他内容,否则split和转换为int出异常后直接返回false,代表校验不通过

然后将解析结果赋值给两个全局变量Global.Instance.apiIpString,Global.Instance.apiPort

代码实现

        /// <summary>/// 解析htpp接口字符串获取ip和端口号/// </summary>/// <param name="httpStr"></param>public static bool analysisIpPort(string httpStr){string subString = string.Empty;string ipStr = "127.0.0.1";int port = 80;try {if (httpStr.Contains("https")){subString = httpStr.Substring(8);}else{subString = httpStr.Substring(7);}//包含冒号则说明带端口号if (subString.Contains(":")){string[] result = subString.Split(':');ipStr = result[0];port = int.Parse(result[1]);}//否则使用默认80端口else{ipStr = subString;}Global.Instance.apiIpString = ipStr;Global.Instance.apiPort = port;return true;}catch (Exception exception){return false;}      }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/87185.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入电机控制基础知识(1)- 磁共能与电磁转矩

1.1 概述 打开任意一本电机学的教材&#xff0c;翻到电机基本概念的说明的位置&#xff0c;总能看到一句描述电机本质的话&#xff1a;电机是一种机电能量转化的装置。 机电能量转化&#xff0c;很生动形象的说明电机的工作原理。对于电动机而言&#xff0c;吸收电能&#xff…

LuatOS-SOC接口文档(air780E)--errDump - 错误上报

示例 -- 基本用法, 10分钟上报一次,如果有的话 if errDump thenerrDump.config(true, 600) end-- 附开源服务器端: https://gitee.com/openLuat/luatos-devlogerrDump.dump(zbuff, type, isDelete) 手动读取异常日志&#xff0c;主要用于用户将日志发送给自己的服务器而不是I…

全网首发YOLOv5/YOLOv7暴力涨点:Gold-YOLO,遥遥领先,超越所有YOLO | 华为诺亚NeurIPS23

💡💡💡本文独家改进:提出了全新的信息聚集-分发(Gather-and-Distribute Mechanism)GD机制,Gold-YOLO,替换yolov5 head部分 实现暴力涨点 Gold-YOLO | 亲测在多个数据集能够实现大幅涨点 💡💡💡Yolov5/Yolov7魔术师,独家首发创新(原创),适用于Yolov5、…

优思学院|如何解读Minitab中测量系统分析(MSA GRR)的结果?

在现代制造和质量控制过程中&#xff0c;精确的测量是至关重要的。为了确保我们的测量工具可靠&#xff0c;我们需要评估其重复性与再现性。这就是测量系统分析&#xff08;Measurement System Analysis&#xff0c;简称MSA&#xff09;的关键目标之一。以下将介绍如何使用Mini…

Vue如何监听键盘事件

引言 在Web开发中&#xff0c;键盘事件是非常常见的交互方式之一。Vue作为一种流行的JavaScript框架&#xff0c;提供了一种简单而灵活的方式来监听键盘事件。本文将介绍如何在Vue中监听键盘事件&#xff0c;并展示一些实用的示例。 目录 Vue中监听键盘事件的基本用法监听特定…

前端进阶--深入理解JavaScript

1、JS的作用域和作用域链 作用域链的作用是保证对执行环境有权访问的所有变量和函数的有序访问&#xff0c;通过作用域链&#xff0c;我们可以访问到外层环境的变量和函数。作用域链的本质上是一个指向变量对象的指针列表。变量对象是一个包含了执行环境中所有变量和函数的对象…

IDEA下使用Spring MVC

<?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://ma…

【GO】LGTM_Grafana_gozero_配置trace(4)_代码实操及追踪

最近在尝试用 LGTM 来实现 Go 微服务的可观测性&#xff0c;就顺便整理一下文档。 Tempo 会分为 4 篇文章&#xff1a; Tempo 的架构官网测试实操跑通gin 框架发送 trace 数据到 tempogo-zero 微服务框架发送数据到 tempo 本文就是写一下如何在 go-zero 微服务框架里面配置 t…

解决GOSUMDB sum.golang.org 连接超时

$ go get github.com/mutecomm/go-sqlcipher/v4 github.com/mutecomm/go-sqlcipher/v4v4.4.2: verifying module: missing GOSUMDB 原因&#xff1a; 首先需要弄懂&#xff0c;执行以上提到的两个命令时&#xff0c;除了会从 GOPROXY 下载压缩包&#xff0c;还会调用 GOSUMDB…

相机Camera

Camera需与SurfaceView配合使用 Camera类常用方法&#xff1a; Camera.open() 创建Camera实例&#xff0c;打开相机 getParameters() 获取相机参数 release() 释放相机资源 setParameters(Camera.Parameters parameters) 设置相机参数 setPreviewDisplay(SurfaceHolder holde…

暗月中秋靶场活动writeup

前言 暗月在中秋节搞了个靶场活动&#xff0c;一共有4个flag&#xff0c;本着增长经验的想法参加了本次活动&#xff0c;最终在活动结束的时候拿到了3个flag&#xff0c;后面看了其他人的wp也复现拿到第四个flag。过程比较曲折&#xff0c;所以记录一下。 靶场地址 103.108.…

Chinese-LLaMA-AIpaca

文章目录 关于 Chinese-LLaMA-Alpaca一、LLaMA模型 --> HF格式二、合并LoRA权重,生成全量模型权重方式1:单LoRA权重合并方式2:多LoRA权重合并(适用于Chinese-Alpaca-Plus )三、使用 Transformers 进行推理四、使用 webui 搭建界面1、克隆text-generation-webui并安装必…

虚拟IP技术

1.说明 虚拟IP&#xff08;Virtual IP Address&#xff0c;简称VIP&#xff09;是一个未分配给真实弹性云服务器网卡的IP地址。 弹性云服务器除了拥有私有IP地址外&#xff0c;还可以拥有虚拟IP地址&#xff0c;用户可以通过其中任意一个IP&#xff08;私有IP/虚拟IP&#xf…

基础排序算法

插入排序&#xff08;insertion sort&#xff09; 插入排序每次循环将一个元素放置在适当的位置。像抓牌一样。手里的排是有序的&#xff0c;新拿一张牌&#xff0c;与手里的牌进行比较将其放在合适的位置。 插入排序要将待排序的数据分成两部分&#xff0c;一部分有序&#…

Leetcode 409. 最长回文串

文章目录 题目代码&#xff08;9.24 首刷自解&#xff09; 题目 Leetcode 409. 最长回文串 代码&#xff08;9.24 首刷自解&#xff09; class Solution { public:int longestPalindrome(string s) {unordered_map<char, int> mp;for(char c : s) mp[c];int res 0;int…

什么是Selenium?使用Selenium进行自动化测试!

你知道什么是 Selenium 吗&#xff1f;你知道为什么要使用它吗&#xff1f;答案就在本文中&#xff0c;很高兴能够与你共飧。 自动化测试正席卷全球&#xff0c;Selenium 认证是业界最抢手的技能之一。 什么是 Selenium&#xff1f; Selenium 是一种开源工具&#xff0c;用于…

2023蓝帽杯半决赛misc题目复现

后续会逐渐完善&#xff1a; misc--排排坐吃果果 我真是无大语了&#xff0c;对于我的死脑筋&#xff0c;文件一打开是一片白色&#xff0c;但是点开单元格会看到里面有数字&#xff0c;我想到了修改单元格的格式&#xff0c;就是没想到转换字体的颜色&#xff0c;对此我表示…

npm安装

title: “Npm安装” updateTime: 2023-02-21T11:40:2008:00 createTime: 2023-02-21T11:40:2008:00 draft: false author: “name” tags: [“未标签”] categories: [“npm”,“vue”] description: “测试的” npm安装 设置软件默认安装位置 npm config set prefix "…

LuatOS-SOC接口文档(air780E)--eink - 墨水屏操作库

常量 常量 类型 解释 eink.MODEL_1in02d number 1.02寸d eink.MODEL_1in54 number 1.54寸 eink.MODEL_1in54_V2 number 1.54寸_V2 eink.MODEL_1in54b number 1.54寸b eink.MODEL_1in54b_V2 number 1.54寸b_V2 eink.MODEL_1in54_V3 number 1.54寸_V3 eink.…

阿里云ESS弹性伸缩核心概念与基本使用

文章目录 1.ESS弹性伸缩基本概念1.1.弹性伸缩概念1.2.弹性伸缩应用场景1.3.弹性伸缩的应用模式 2.开通ESS弹性伸缩服务3.为KodCloud云盘集群创建弹性伸缩组3.1.创建伸缩组3.2.设置伸缩组的名称、类型、移除策略、健康检查3.3.设置组内实例数、冷却时间、网络类型、扩缩容策略、…