| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 153 人关注过本帖
标题:实用的一个文本框类,只能输入ip地址
只看楼主 加入收藏
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10756
专家分:43339
注 册:2014-5-20
收藏
得分:0 
也可以模拟 Internet 协议的IP格式由四个三位数字段组成,每个字段单独处理。
实际应用中通常是用 in_addr 结构表示IP地址。
in_addr结构简单可以这样理解:
struct in_addr {
    u_char s_b1;
    u_char s_b2;
    u_char s_b3;
    u_char s_b4;
};

图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
of=CREATEOBJECT("form1")
of.show(1)

DEFINE CLASS form1 as Form
    ADD OBJECT label1 as label WITH left=10,top=10,width=135,height=16,backcolor=0x00FFFFFF,;
        BorderStyle=1,caption="     .     .     .     "
    ADD OBJECT ip1 as text_ip WITH left=11,top=11,width=30,height=14
    ADD OBJECT ip2 as text_ip WITH left=42,top=11,width=30,height=14
    ADD OBJECT ip3 as text_ip WITH left=78,top=11,width=30,height=14
    ADD OBJECT ip4 as text_ip WITH left=114,top=11,width=30,height=14
ENDDEFINE

DEFINE CLASS text_ip as TextBox 
    Alignment = 2
    BorderStyle = 0
    Margin = 0
    Format = "Z" 
    InputMask = "999"
    value = 0
    PROCEDURE valid
        RETURN BETWEEN(this.Value,0,255)
    ENDPROC
ENDDEFINE

7 小时前
foxfans
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:117
专家分:328
注 册:2021-10-23
收藏
得分:0 
可以进一步完成兼容ipv4与6,下面是验证地址有效性(只判断)
CLEAR
DECLARE INTEGER inet_pton IN ws2_32.dll INTEGER af, STRING src, STRING @dst

cIPv4Addr = SPACE(4)
cInput = "192.168.1.1"
nResult = inet_pton(2, cInput, @cIPv4Addr)
IF nResult = 1 THEN
  ? "IPv4地址有效"
ELSE
  ? "IPv4地址无效"
ENDIF

cIPv6Addr = SPACE(16)
cInput = "2001:1db8:35a3:ff00:0130:8a2e:0370:7334"
nResult = inet_pton(23, cInput, @cIPv6Addr)
IF nResult = 1 THEN
  ? "IPv6地址有效"
ELSE
  ? "IPv6地址无效"
ENDIF
*!*    CLEAR DLLS "inet_pton"
2 小时前
快速回复:实用的一个文本框类,只能输入ip地址
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027414 second(s), 11 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved