/AddClass

Defines a new connection class on the specified servers. Users currently logged on to the server will not be affected by a new class until they log off and then log on again.

A class designates a logical collection of chat users whose membership is based on one or more criteria, such as their chat client protocol (for example, IRC) or their IP address. User classes allow you to protect your chat server and its users from flooding and other types of attacks. You create classes to impose collective restrictions on groups of chat users, such as their ability to log on to the server, create or join dynamic channels, or become a channel owner or host. You can also regulate the processing of messages from class members and limit the number of channels they can create on the server.

Chat Service uses the following criteria to add a user to a class:

To determine whether a user belongs to a class, Chat Service searches the classes in alphanumeric order. When a user matches a class selection criteria, Chat Service adds the user to that class and imposes its associated restrictions on the user.

See also /DeleteClass, /SetClass, /GetClass, /ListClasses.

Syntax

Chatcmd Server /AddClass:ClassName=[SelectionParameters][,ConstraintParameters]

Parts

Server This switch does not support multiple servers in its command line. Creating or setting a class on one server does not update other servers on the network. Specify all servers individually on the network for a consistent state.
ClassName A class of users who are defined by selection parameters.
SelectionParameters These parameters are provided in one of the following tables.
ConstraintParameters   These parameters are provided in one of the following tables.

Note  You must enter the class parameters on the command line in the order specified in the following tables. First enter the selection parameters, followed by the constraint parameters. If you don't want to alter a parameter, use a number sign (#).

Selection Parameters

For each client connection, the classes are scanned in alphabetical order to find a match using the selection parameters of the class. After a match is found, the constraint parameters are applied to the connection.

The selection parameters are described in the following table.

ClassName Sets the name of the class. The class name is limited to 63 characters. You can use alphabetic characters (in the current language), numerals, the underscore (_), and the hyphen (-). Only alphabetic characters, the underscore, and the hyphen are valid first characters.
ClientType IGNORE, MICCLIENT, or IRCCLIENT; ClientType adds members to the class according to their client protocol.
    IGNORE   Disables class selection based on the chat client protocol. This has the same effect as adding users running Microsoft Internet Chat (MIC), IRC, and Extended IRC (IRCX) clients to the class.
    MICCLIENT   Adds only users running MIC clients to the class.
    IRCCLIENT   Adds only users running IRC and IRCX clients to the class.
LogonMode   IGNORE, ANONYMOUS, or AUTHENTICATED; LogonMode adds members to the class according to how they log on to the service.
    IGNORE   Disables class selection based on logon mode. This has the same effect as adding both authenticated and anonymous users to the class.
    ANONYMOUS   Adds only authenticated users to the class.
    AUTHENTICATED   Adds only anonymous users to the class.
IdentMask One or more parts of an incoming client's ident string, which the service can use to add members to the class. For example, if the Identmask is *@microsoft.com, any client whose host name contains @microsoft.com is added to the class. The mask can contain up to 63 characters.
To use Identmask, verify that /SetDNSLookupAnon is set to REQUIRED. This allows the server to obtain the Domain Name System (DNS) host name of an incoming client. Identmask has no effect unless the client's DNS host name can be verified.
The IP address and IP mask options are disabled if you enter an ident mask.
IPAddress IP address for match comparison.
IPMask An address mask that the service can use to add members to the class. Chat Service performs one Boolean AND operation between the IP mask and the client's IP address, and another between the IP Mask and the address in the IP address box. If the two resulting addresses are identical, the service adds the client to the class. Also, any portion of the mask that contains a zero, which is considered a wildcard, always produces a match in the corresponding portion of the resulting addresses.
For example, if IPMmask is 255.255.255.0, IPAddress is 10.120.103.0, and a client's IP address is 10.120.103.5, the service adds the client to the class. A client whose IP address is 10.120.104.5 is not added.
The Identmask option is disabled if you enter an IP mask.
StartTime The time that this class becomes active, in Universal Coordinate Time (UTC). Use 24-hour format.
StopTime The time that this class becomes inactive, in UTC. Use 24-hour format.
Important  The time period you set must fall between 12:00 a.m. and 11:59 p.m. For example, a valid time is 1:00 a.m. to 6:30 a.m.; an invalid time is 11:00 p.m. to 4:00 a.m.

Constraint Parameters

The constraint parameters are described in the following table.

Modes Mode flags are special constraint parameters. Separate them in the command line with the plus sign (+):
    DEFAULT When no other mode is selected.
    DENYACCESS Deny access to the server.
Note  If DENYACCESS is set, other access parameters do not function.
    NOCHANHOST Member cannot be a channel host.
    NODYNAMIC Member cannot create dynamic channels.
Note  If NODYNAMIC is set, a user can still be made a host of that channel (with the capabilities of Kick and Ban).
    NOJOINDYNAMIC Member cannot join dynamic channels. If this is set, a user cannot join, create, see, list, or find a dynamic chat.
    IPMASKING Prevents the chat server from showing the full IP or DNS address of a user to others.
MaxChannels Maximum number of channels a member of this class can create. You can set a value from 0 to 10.
PingDelay Sets the time interval between PINGs that the service sends to inactive clients. You can set a value from 15 to 3600 seconds. The default value is 90 seconds.
InputFloodLimit The amount of unprocessed input data on the service that causes a user to be disconnected. You can set a value from 0 to 4096 bytes. A value of 0 indicates that the service can accept an unlimited amount of data from a client.
Caution  A value of 0 leaves the server vulnerable to flooding attacks.
OutputSaturationLimit The maximum amount of data that the service can buffer for a client before it drops the client connection. You can set a value from 1 to 1024 kilobytes (KB).
MessageAutoLag Delays processing all messages from a class of members. You can set a value from 0 to 10 seconds.
AttackProtection Regulates the flow of traffic from members of a user class by limiting the frequency with which Chat Service processes data messages, invitations, join messages, messages from the host to the channel, and standard messages (private messages, notices, and whispers). If the service receives one of these messages, it temporarily suspends the user's session. After the delay expires, the service resumes normal message processing. Also, if a user tries to join a channel using the wrong password, the service delays processing subsequent attempts by that user to join the channel.
The four levels of attack protection are NONE (no delay), LOW, MEDIUM, and HIGH. Each level corresponds to a specific delay time (from 0 to 5 seconds) according to the type of message the service receives or the type of event that occurs.
MaximumIPConnections   The maximum number of connections an IP address can open on a chat network. You can set a value from 0 to 1000000. The default setting is 0 (unlimited connections).
NickDelay The number of seconds that must elapse between nickname changes. You can set a value from 0 to 3600 seconds. A value of 3600 prevents all nickname changes.
Nickdelay does not slow the activity of a class member session. If a member tries to change nicknames before the delay has elapsed, the chat server notifies the member that he or she tried to change nicknames too soon.

Example

chatcmd myserv01 /addclass:denyirc=ircclient,anonymous,#,#,#,00:00,00:00,denyaccess 
     A class is created of anonymous users, called DenyIrc, that denies them access to Myserv01.


© 1998 Microsoft Corporation. All rights reserved.