OSSIM主要数据库表结构

OSSIM主要数据库表结构


对于从事OSSIM开发的技术人员,最主要的需要知道OSSIM库里的多种表结构,下面举几个典型事例:

/* ======== config表 ======== */

DROP TABLE IF EXISTS conf;

CREATE TABLE conf (

    recovery        int NOT NULL,

    threshold       int NOT NULL,

    graph_threshold int NOT NULL,

    bar_length_left int NOT NULL,

    bar_length_right int NOT NULL,

    PRIMARY KEY (recovery, threshold, graph_threshold, 

                 bar_length_left, bar_length_right)

);



/* ======== hosts & nets表 ======== */

DROP TABLE IF EXISTS host;

CREATE TABLE host (

  ip                varchar(15) UNIQUE NOT NULL,

  hostname          varchar(128) NOT NULL,

  asset             smallint(6) NOT NULL,

  threshold_c       int NOT NULL,

  threshold_a       int NOT NULL,

  alert             int NOT NULL,

  persistence       int NOT NULL,

  nat               varchar(15),

  descr             varchar(255),

  PRIMARY KEY       (ip)

);


DROP TABLE IF EXISTS scan;

CREATE TABLE scan (

    ip              varchar(15) UNIQUE NOT NULL,

    active          int NOT NULL,

    PRIMARY KEY     (ip)

);


DROP TABLE IF EXISTS net;

CREATE TABLE net (

  name              varchar(128) UNIQUE NOT NULL,

  ips               varchar(255) NOT NULL,

  priority          int NOT NULL,

  threshold_c       int NOT NULL,

  threshold_a       int NOT NULL,

  alert             int NOT NULL,

  persistence       int NOT NULL,

  descr             varchar(255),

  PRIMARY KEY       (name)

);



DROP TABLE IF EXISTS net_host_reference;

CREATE TABLE net_host_reference (

  net_name          varchar(128) NOT NULL,

  host_ip           varchar(15) NOT NULL,

  PRIMARY KEY       (net_name,host_ip)

);




/* ======== signatures表 ======== */

DROP TABLE IF EXISTS signature_group;

CREATE TABLE signature_group (

  name              varchar(64) NOT NULL,

  descr             varchar(255),

  PRIMARY KEY       (name)

);


DROP TABLE IF EXISTS signature;

CREATE TABLE signature (

  name              varchar(64) NOT NULL,

  PRIMARY KEY       (name)

);


DROP TABLE IF EXISTS signature_group_reference;

CREATE TABLE signature_group_reference (

    sig_group_name    varchar(64) NOT NULL,

    sig_name          varchar(64) NOT NULL,

    PRIMARY KEY      (sig_group_name, sig_name)

);


/* ======== ports表 ======== */

DROP TABLE IF EXISTS port_group;

CREATE TABLE port_group (

    name            varchar(64) NOT NULL,

    descr           varchar(255),

    PRIMARY KEY     (name)

);


DROP TABLE IF EXISTS port;

CREATE TABLE port (

  port_number       int NOT NULL,

  protocol_name     varchar(12) NOT NULL,

  service           varchar(64),

  descr             varchar(255),

  PRIMARY KEY       (port_number,protocol_name)

);



DROP TABLE IF EXISTS port_group_reference;

CREATE TABLE port_group_reference (

    port_group_name varchar(64) NOT NULL,

    port_number     int NOT NULL,

    protocol_name   varchar(12) NOT NULL,

    PRIMARY KEY     (port_group_name, port_number, protocol_name)

);



DROP TABLE IF EXISTS protocol;

CREATE TABLE protocol (

  id                int NOT NULL,

  name              varchar(24) NOT NULL,

  alias             varchar(24),

  descr             varchar(255) NOT NULL,

  PRIMARY KEY       (id)

);



/* ======== sensors表 ======== */

DROP TABLE IF EXISTS sensor;

CREATE TABLE sensor (

    name            varchar(64) NOT NULL,

    ip              varchar(15) NOT NULL,

    priority        smallint NOT NULL,

    port            int NOT NULL,

    connect         smallint NOT NULL,

/*    sig_group_id    int  NOT NULL, */

    descr           varchar(255) NOT NULL,

    PRIMARY KEY     (name)

);


DROP TABLE IF EXISTS host_sensor_reference;

CREATE TABLE host_sensor_reference (

    host_ip         varchar(15) NOT NULL,

    sensor_name     varchar(64) NOT NULL,

    PRIMARY KEY     (host_ip, sensor_name)

);


DROP TABLE IF EXISTS net_sensor_reference;

CREATE TABLE net_sensor_reference (

    net_name        varchar(15) NOT NULL,

    sensor_name     varchar(64) NOT NULL,

    PRIMARY KEY     (net_name, sensor_name)

);



/* ======== policy 表======== */

DROP TABLE IF EXISTS policy;

CREATE TABLE policy (

    id              int NOT NULL auto_increment,

    priority        smallint NOT NULL,

    descr           varchar(255),

    PRIMARY KEY     (id)

);


DROP TABLE IF EXISTS policy_port_reference;

CREATE TABLE policy_port_reference (

    policy_id       int NOT NULL,

    port_group_name varchar(64) NOT NULL,

    PRIMARY KEY     (policy_id, port_group_name)

);


DROP TABLE IF EXISTS policy_host_reference;

CREATE TABLE policy_host_reference (

    policy_id       int NOT NULL,

    host_ip         varchar(15) NOT NULL,

    direction       enum ('source', 'dest') NOT NULL,

    PRIMARY KEY (policy_id, host_ip, direction)

);


DROP TABLE IF EXISTS policy_net_reference;

CREATE TABLE policy_net_reference (

    policy_id       int NOT NULL,

    net_name        varchar(64) NOT NULL,

    direction       enum ('source', 'dest') NOT NULL,

    PRIMARY KEY (policy_id, net_name, direction)

);


DROP TABLE IF EXISTS policy_sensor_reference;

CREATE TABLE policy_sensor_reference (

    policy_id       int NOT NULL,

    sensor_name     varchar(64) NOT NULL,

    PRIMARY KEY     (policy_id, sensor_name)

);


DROP TABLE IF EXISTS policy_sig_reference;

CREATE TABLE policy_sig_reference (

    policy_id       int NOT NULL,

    sig_group_name  varchar(64) NOT NULL,

    PRIMARY KEY     (policy_id, sig_group_name)

);


DROP TABLE IF EXISTS policy_time;

CREATE TABLE policy_time (

    policy_id       int NOT NULL,

    begin_hour      smallint NOT NULL,

    end_hour        smallint NOT NULL,

    begin_day       smallint NOT NULL,

    end_day         smallint NOT NULL,

    PRIMARY KEY     (policy_id)

);



/* ======== qualification表 ======== */

DROP TABLE IF EXISTS host_qualification;

CREATE TABLE host_qualification (

    host_ip         varchar(15) NOT NULL,

    compromise      int NOT NULL DEFAULT 1,

    attack          int NOT NULL DEFAULT 1,

    PRIMARY KEY     (host_ip)

);


DROP TABLE IF EXISTS net_qualification;

CREATE TABLE net_qualification (

    net_name        varchar(64) NOT NULL,

    compromise      int NOT NULL DEFAULT 1,

    attack          int NOT NULL DEFAULT 1,

    PRIMARY KEY     (net_name)

);


DROP TABLE IF EXISTS host_vulnerability;

CREATE TABLE host_vulnerability (

    ip              varchar(15) NOT NULL,

    vulnerability   int NOT NULL DEFAULT 1,

    PRIMARY KEY     (ip)

);


DROP TABLE IF EXISTS net_vulnerability;

CREATE TABLE net_vulnerability (

    net             varchar(15) NOT NULL,

    vulnerability   int NOT NULL DEFAULT 1,

    PRIMARY KEY     (net)

);


DROP TABLE IF EXISTS control_panel_host;

CREATE TABLE control_panel_host (

    host_ip         varchar(15) NOT NULL,

    time_range      varchar(5) NOT NULL DEFAULT 'day',

    max_c           int NOT NULL,

    max_a           int NOT NULL,

    max_c_date      datetime,

    max_a_date      datetime,

    avg_c           int NOT NULL,

    avg_a           int NOT NULL,

    PRIMARY KEY     (host_ip, time_range)

);


DROP TABLE IF EXISTS control_panel_net;

CREATE TABLE control_panel_net (

    net_name        varchar(15) NOT NULL,

    time_range      varchar(5) NOT NULL DEFAULT 'day',

    max_c           int NOT NULL,

    max_a           int NOT NULL,

    max_c_date      datetime,

    max_a_date      datetime,

    avg_c           int NOT NULL,

    avg_a           int NOT NULL,

    PRIMARY KEY     (net_name, time_range)

);


DROP TABLE IF EXISTS host_mac;

CREATE TABLE host_mac (

  ip                        varchar(15) UNIQUE NOT NULL,

  mac                    varchar(255) NOT NULL,

  previous                varchar(255) NOT NULL,

  anom                      int NOT NULL,

  mac_time                 varchar(100) NOT NULL,

  PRIMARY KEY       (ip)

);


DROP TABLE IF EXISTS host_os;

CREATE TABLE host_os (

  ip                        varchar(15) UNIQUE NOT NULL,

  os                    varchar(255) NOT NULL,

  previous                varchar(255) NOT NULL,

  anom                      int NOT NULL,

  os_time                 varchar(100) NOT NULL,

  PRIMARY KEY       (ip)

);


DROP TABLE IF EXISTS host_services;

CREATE TABLE host_services (

    ip      varchar(15) NOT NULL,

    service varchar(128) NOT NULL,

    version varchar(255) NOT NULL,

    PRIMARY KEY (ip, service, version)

);


DROP TABLE IF EXISTS host_netbios;

CREATE TABLE host_netbios (

    ip      varchar(15) NOT NULL,

    name    varchar(128) NOT NULL,

    wgroup  varchar(128),

    PRIMARY KEY (ip)

);


DROP TABLE IF EXISTS rrd_conf;

CREATE TABLE rrd_conf (

  ip                        varchar(15) UNIQUE NOT NULL,

  pkt_sent                varchar(60) NOT NULL,

  pkt_rcvd               varchar(60) NOT NULL,

  bytes_sent            varchar(60) NOT NULL,

  bytes_rcvd            varchar(60) NOT NULL,

  tot_contacted_sent_peersvarchar(60) NOT NULL,

  tot_contacted_rcvd_peersvarchar(60) NOT NULL,

  ip_dns_sent_bytes        varchar(60) NOT NULL,

  ip_dns_rcvd_bytes        varchar(60) NOT NULL,

  ip_nbios_ip_sent_bytesvarchar(60) NOT NULL,

  ip_nbios_ip_rcvd_bytesvarchar(60) NOT NULL,

  ip_mail_sent_bytes    varchar(60) NOT NULL,

  ip_mail_rcvd_bytes    varchar(60) NOT NULL,

  mrtg_a                varchar(60) NOT NULL,

  mrtg_c                varchar(60) NOT NULL,

  PRIMARY KEY       (ip)

);


DROP TABLE IF EXISTS rrd_anomalies;

CREATE TABLE rrd_anomalies (

    ip                      varchar(15) NOT NULL,

    what                    varchar(100) NOT NULL,

    count                   int NOT NULL,

    anomaly_time            varchar(40) NOT NULL,

    range                   varchar(30) NOT NULL,

    over                    int NOT NULL,

    acked                   int DEFAULT 0

);


DROP TABLE IF EXISTS rrd_conf_global;

CREATE TABLE rrd_conf_global (

active_host_senders_num VARCHAR(60) NOT NULL,

arp_rarp_bytes    VARCHAR(60) NOT NULL,

broadcast_pkts    VARCHAR(60) NOT NULL,

ethernet_bytes    VARCHAR(60) NOT NULL, 

ethernet_pkts     VARCHAR(60) NOT NULL, 

icmp_bytes        VARCHAR(60) NOT NULL, 

igmp_bytes        VARCHAR(60) NOT NULL, 

ip_bytes          VARCHAR(60) NOT NULL, 

ip_dhcp_bootp_bytes VARCHAR(60) NOT NULL, 

ip_dns_bytes      VARCHAR(60) NOT NULL,

ip_edonkey_bytes  VARCHAR(60) NOT NULL, 

ip_ftp_bytes      VARCHAR(60) NOT NULL, 

ip_gnutella_bytes VARCHAR(60) NOT NULL, 

ip_http_bytes     VARCHAR(60) NOT NULL, 

ip_kazaa_bytes    VARCHAR(60) NOT NULL, 

ip_mail_bytes     VARCHAR(60) NOT NULL, 

ip_messenger_bytes VARCHAR(60) NOT NULL,

ip_nbios_ip_bytes VARCHAR(60) NOT NULL, 

ip_nfs_bytes      VARCHAR(60) NOT NULL, 

ip_nttp_bytes     VARCHAR(60) NOT NULL, 

ip_snmp_bytes     VARCHAR(60) NOT NULL, 

ip_ssh_bytes      VARCHAR(60) NOT NULL, 

ip_telnet_bytes   VARCHAR(60) NOT NULL, 

ip_winmx_bytes    VARCHAR(60) NOT NULL, 

ip_x11_bytes      VARCHAR(60) NOT NULL, 

ipx_bytes         VARCHAR(60) NOT NULL,

known_hosts_num   VARCHAR(60) NOT NULL,

multicast_pkts    VARCHAR(60) NOT NULL,

ospf_bytes        VARCHAR(60) NOT NULL,

other_bytes       VARCHAR(60) NOT NULL,

tcp_bytes         VARCHAR(60) NOT NULL,

udp_bytes         VARCHAR(60) NOT NULL,

up_to_1024_pkts   VARCHAR(60) NOT NULL,

up_to_128_pkts    VARCHAR(60) NOT NULL,

up_to_1518_pkts   VARCHAR(60) NOT NULL,

up_to_512_pkts    VARCHAR(60) NOT NULL,

up_to_64_pkts     VARCHAR(60) NOT NULL

);


DROP TABLE IF EXISTS rrd_anomalies_global;

CREATE TABLE rrd_anomalies_global (

    what                    varchar(100) NOT NULL,

    count                   int NOT NULL,

    anomaly_time            varchar(40) NOT NULL,

    range                   varchar(30) NOT NULL,

    over                    int NOT NULL,

    acked                   int DEFAULT 0

);


--

-- Table: Category表

--

DROP TABLE IF EXISTS category;

CREATE TABLE category (

idINTEGER NOT NULL,

nameVARCHAR (100) NOT NULL,

PRIMARY KEY (id)

);


--

-- Table: Classification表

--

DROP TABLE IF EXISTS classification;

CREATE TABLE classification (

idINTEGER NOT NULL,

nameVARCHAR (100) NOT NULL,

descriptionTEXT,

priorityINTEGER,

PRIMARY KEY (id)

);


--

-- Table: Plugin表

--

DROP TABLE IF EXISTS plugin;

CREATE TABLE plugin (

idINTEGER NOT NULL,

typeSMALLINT NOT NULL,

nameVARCHAR (100) NOT NULL,

descriptionTEXT,

PRIMARY KEY (id)

);


--

-- Table: Plugin Sid表

--

DROP TABLE IF EXISTS plugin_sid;

CREATE TABLE plugin_sid (

plugin_idINTEGER NOT NULL,

sidINTEGER NOT NULL,

category_idINTEGER,

class_idINTEGER,

reliabilityINTEGER DEFAULT 1,

priorityINTEGER DEFAULT 1,

nameVARCHAR (255) NOT NULL,

PRIMARY KEY (plugin_id, sid)

);


--

-- Table: Alert表

--

DROP TABLE IF EXISTS alert;

CREATE TABLE alert (

idBIGINT NOT NULL AUTO_INCREMENT,

timestampTIMESTAMP,

sensorTEXT NOT NULL,

interfaceTEXT NOT NULL,

typeINTEGER NOT NULL,

plugin_idINTEGER NOT NULL,

plugin_sidINTEGER,

protocolINTEGER,

src_ipINTEGER UNSIGNED,

dst_ipINTEGER UNSIGNED,

src_portINTEGER,

dst_portINTEGER,

conditionINTEGER,

valueTEXT,

time_intervalINTEGER,

absoluteTINYINT,

priorityINTEGER DEFAULT 1,

reliabilityINTEGER DEFAULT 1,

asset_srcINTEGER DEFAULT 1,

asset_dstINTEGER DEFAULT 1,

risk_aINTEGER DEFAULT 1,

risk_cINTEGER DEFAULT 1,

alarm           TINYINT DEFAULT 1,

PRIMARY KEY (id)

);


--

-- Table: Backlog表

--

DROP TABLE IF EXISTS backlog;

CREATE TABLE backlog (

utimeBIGINT NOT NULL,

idINTEGER NOT NULL,

nameTEXT,

rule_levelINTEGER,

rule_typeTINYINT,

rule_nameTEXT,

occurrence      INTEGER,

time_outINTEGER,

matchedTINYINT,

plugin_idINTEGER,

plugin_sidINTEGER,

src_ipINTEGER UNSIGNED,

dst_ipINTEGER UNSIGNED,

src_portINTEGER,

dst_portINTEGER,

condition       INTEGER,

valueTEXT,

time_intervalINTEGER,

absoluteTINYINT,

priorityINTEGER,

reliability     INTEGER,

PRIMARY KEY (utime, id)

);


--

-- Table: plugin_reference表

--

DROP TABLE IF EXISTS plugin_reference;

CREATE TABLE plugin_reference (

plugin_idINTEGER NOT NULL,

plugin_sidINTEGER NOT NULL,

reference_idINTEGER NOT NULL,

reference_sidINTEGER NOT NULL,

PRIMARY KEY (plugin_id, plugin_sid, reference_id, reference_sid)

);


--

-- Table: Host plugin sid表

--

DROP TABLE IF EXISTS host_plugin_sid;

CREATE TABLE host_plugin_sid (

host_ip         INTEGER UNSIGNED NOT NULL,

plugin_idINTEGER NOT NULL,

plugin_sidINTEGER NOT NULL,

PRIMARY KEY (host_ip, plugin_id, plugin_sid)

);


--

-- Table: Host scan表

--

DROP TABLE IF EXISTS host_scan;

CREATE TABLE host_scan (

host_ip         INTEGER UNSIGNED NOT NULL,

plugin_idINTEGER NOT NULL,

plugin_sidINTEGER NOT NULL,

PRIMARY KEY (host_ip, plugin_id, plugin_sid)


);



有关OSSIM更多内容请参阅《开源安全运维平台-OSSIM最佳实践》一书。



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

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

相关文章

C#线程同步(1)- 临界区&Lock .

预备知识:线程的相关概念和知识,有多线程编码的初步经验。 一个机会,索性把线程同步的问题在C#里面的东西都粗略看了下。 第一印象,C#关于线程同步的东西好多,保持了C#一贯的大杂烩和四不象风格(Java/Delphi)。临界区跟…

python atm银行取款系统_Python实现ATM系统

今天偶尔在知乎上看到某大佬用Python写的ATM系统案例,然后观摩了下他的实现思路和源码,感觉受益颇多,于是就根据自己的思路和目前掌握的Python编程基础将ATM实现了一下,以下是案例解析的过程:案例剖析:1.at…

【摘录】BREW应用的c++实现注意点

BREW应用的c实现注意点 从VC6.0的调试器来说吧,肯定支持C语言了,对于ARM或者GCC来说,也是有可用的C编译器,而且任何支持BREW的手机都可以运行通过ARM或者GCC编译连接出来的目标代码,所以从环境来说,BREW开发…

MapXtreme 包含所有自带坐标系一览

CoordSys 对象包含关于 X 和 Y 坐标如何与其在 Earth 上的位置相关联的基本信息。 每个 Geometry 或 Map 对象都有一个关联的坐标系。 CoordSys 对象包含对坐标系的详细说明。 CoordSysFactory 类提供了各种用于创建不同 CoordSys 对象的方法。 所有 CoordSys 对象都是只读的&a…

html4的语法,HTML——语法

文章目录页面结构一个标准的HTML页面如下:Document一、文档声明头标准的HTML页面,第一行是以开头的的语句,这就是文档声明头,即DocType Declaration,简称DTD。DTD可以告知浏览器使用哪种HTML或者XHTML规范。二、页面语…

如何学习streamdecoder类_2019年终巨献:一份拿下了阿里、网易、滴滴等大厂offer的学习笔记...

2019仅剩最后二十天,回顾今年初遇“寒冬”时,自己也挺慌的,但是经历过这么多次面试后,我才“醒悟”,所谓的“寒冬”,“冻死”的都是“衣服穿的少的”。年末了在这里做一个年度总结,今年面试了不…

自定义控件的构建(12)

Share 前面讲了模板的构建&#xff0c;我们忽略了一个细节&#xff0c;如果接触ASP.NET时间不长的话&#xff0c;一般都会看到数据表达式是<%#Eval(‘Name’)%>这种形式的&#xff0c; 那么我们为什么用<%#Container.Name%>这种形式呢&#xff0c;其实前者是ASP.NE…

矩阵快速幂 zoj-3690 Choosing number

题目链接&#xff1a; http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId4973 题目意思&#xff1a; 有n个人&#xff0c;有1——m个数&#xff0c;每个人可以选择1个数&#xff0c;要求相邻的两个人如果选的数相同则必须大于k,求选数的种数。 解题思路&#xff1a…

insertAfter()

<div id"b">bbbbbbbbb</div> <div>dddddd</div> JavaScript window.οnlοadfunction(){var a document.createElement("span");var b document.createTextNode("cssrain");a.appendChild(b);var mubiao document.getE…

python def 参数一直为false_在Python 3中,如果参数为False,则查找惯用的方法来评估为False...

我有一连串的功能,全部定义在课程其他地方&#xff1a;fus(roh(dah(inp)))其中inp是字典或bool(False).期望的结果是,如果inp或任何函数评估为False,则False由函数堆返回.我试图使用三元运算符,但是它们不能正确评估.def func(inp):return int(inp[value]) 1 if inp else Fals…

复试计算机网络与软件工程,2018华南理工大学软件工程复试经验贴

尘埃落定&#xff0c;昨天结束了复试&#xff0c;终于被拟录取了&#xff0c;只有真正经历过才知道不容易&#xff0c;一年来受到王道的很多帮助&#xff0c;论坛上软件工程的信息相对来说还是比较少的&#xff0c;所以也想分享下自己的一些经验&#xff0c;帮助后来人。本人普…

学计算机等级考试电脑版软件,计算机二级考试宝典电脑版

计算机二级考试宝典电脑版是一款专业的二级计算机内容学习软件。该软件由武汉大学团队真情研发&#xff0c;软件包含选择题1600道&#xff0c;非选择题109套&#xff0c;成功实现了考点和重点的全面覆盖式学习目的&#xff0c;对学生们学习起到了巨大的帮助。该版本是通过安卓模…

mysq进阶

学习资料&#xff1a; 官方文档&#xff1a;http://dev.mysql.com/doc/refman/5.0/en/tutorial.html 1.存储过程&#xff1a; 优点&#xff1a;业务逻辑封装在存储过程中&#xff0c;容易维护&#xff0c;执行效率也高。 缺点&#xff1a;不同的数据库功能函数等不一样&#xf…

归纳整理--第4篇--常用软件

CSDN博客不再经常更新&#xff0c;更多优质文章请来 粉丝联盟网 FansUnion.cn! (FansUnion) 随着软硬件设施的提高和网民网络生活的丰富&#xff0c;电脑上的软件越来越多。对于一个专业开发者来说&#xff0c;尤其如此。常用软件主要分2类。1.娱乐休闲类。普通网民使用的一些软…

获取主机的信息

BOOL GetLocalHostInfo(){   //得到主机名称   int nComputerNameLen;   nComputerNameLen MAX_COMPUTERNAME_LENGTH 1;   if(SOCKET_ERROR gethostname(m_chLocalHostName,nComputerNameLen))     return FALSE;   ///end//   ///得到主机IP地址   HOST…

python数据动画_[转载]Maya使用Python获取动画每帧的rotation数据

import maya.cmds asmcimport os#添加一个"Maya动画收集数据"窗口设置动画开始播放#win mc.window(title "Maya动画收集数据", w 400, h 40)#mc.frameLayout( lvFalse )#mc.playbackOptions( minTime0, maxTime20 )mc.select("jamie_arm_R",…

HTML使用vue的 event,vue-js 特殊变量$event常识

背景如果我们要阻止默认事件&#xff0c;在 chrome 等浏览器中&#xff0c;我们可能要写一个&#xff1a;event.preventDefault();而在 IE 中&#xff0c;我们则需要写&#xff1a;event.returnValue false;jquery &#xff0c;跨浏览器的实现&#xff0c;我们统一只需要写&am…

创建非矩形的Windows 窗体

创建非矩形窗体的过程包含三个步骤&#xff1a;• 创建一个作为窗体图面的位图。&#xff08;一种有效的方式是&#xff0c;您可以从矩形中“裁剪掉”所需的窗体形状。&#xff09;• 创建Windows 应用程序项目&#xff0c;将其属性设置为移除标题栏并使用位图作为窗体背景。•…

python3装饰器例子_python 装饰器(三):装饰器实例(一)

示例 7-15 定义了一个装饰器&#xff0c;它会在每次调用被装饰的函数时计时&#xff0c;然后把经过的时间、传入的参数和调用的结果打印出来。示例 7-15 一个简单的装饰器&#xff0c;输出函数的运行时间importtimedefclock(func):def clocked(*args): #➊t0 time.perf_counte…

《c专家编程》笔记--define和typedef的区别

#include <stdio.h> #define peach int typedef int banana;int main(void){unsigned peach a;unsigned banana b;return 0; } 上面的代码中&#xff0c; unsigned banana b; 该行编译会出现错误。 因为typedef是一种彻底的“封装”类型&#xff0c;而#define只是简单的文…