Survey Said SE/EE Reference Manual
|
The script has been designed to include several security features to prevent malicious attacks to the WEB server it is running on. These features include:
The posting file which is to receive respondents answers must already exist on the web server. This prevents a respondent from modifying the FORM ACTION line in the html survey form and using the script on the web server to create unlimited new files in the scripts subdirectory. The webmaster must create an empty posting file using a text editor or on unix systems use the touch command.
The script program will only write to a file with a .pos file extension. This prevents a respondent from modifying the FORM ACTION line in the html survey form and using the script to append the script program or other files that already exist in the script's directory.
The same script can be used as is for all Internet surveys (html forms). This means you only need to put a single copy of the compiled and linked program on the WEB server. The script offers the ability to customize the return message for each html survey, without any programming!
for HTML surveys: (on a UNIX system)
<form action="/cgi-bin/ssweb?surveyfilename.pos"
method=post>
for HTML surveys: (on MS-Windows)
<form action="/scripts/ssweb.exe?surveyfilename.pos"
method=post>
for JAVA surveys:
(use the fully qualified URL including the http://
and server name or address)
(on a UNIX system)
<param name=formaction value="http://www.surveysaid.com/cgi-bin/ssweb?surveyfilename.pos">
(on MS-Windows)
<param name=formaction value="http://www.surveysaid.com/cgi-bin/ssweb.exe?surveyfilename.pos">
The browser then packages up the responses and "POSTS"
them to the WEB server. The WEB server executes the ssweb script
on behalf of the browser's request. The script interprets the
request, processes some environment variables and appends the
existing posting file on the WEB server with the respondent's
answers.
Copy the ssweb program to the appropriate scripts directory on the WEB server. This directory is usually a peer directory to the root directory. It might be possible to use a subdirectory off the web servers "public HTML" root directory but this is not recommend and is not supported on Windows NT systems using IIS 4.0 or later. The scripts directory must have execute permissions but does not need read permissions. In fact, you may want to disable read permissions so that Internet users can not access (i.e. copy) the POS file with your survey data in it. Also copy or create the posting file which is to receive the respondents answers. The supplied script program requires this file to have a .pos file extension for security purposes explained previously. This file can be of zero size or you can put a line of text at the beginning of the file describing what the file is used for (i.e. Posting file for the Employee Satisfaction Survey). The posting file must reside in the same directory as the script program unless otherwise specified in the FORM ACTION line of the HTML survey file. In that case it can be placed in a subdirectory off the scripts directory. An example might be:
(on MS-Windows - HTML form)
<form action="/scripts/ssweb.exe?data/surveyfilename.pos" method=post>
(on MS-Windows - JAVA web page)
<param name=formaction value="http://www.surveysaid.com/cgi-bin/ssweb.exe?surveyfilename.pos">
In this example the script directory is named scripts and the posting file is located in the scripts\data subdirectory.
If you are using the freely distributed MS-Windows 95 Personal WEB server the default directory structure is:
C:\Webshare (as the main directory)
C:\Webshare\Scripts (as the cgi/isapi script directory)
C:\Webshare\Wwwroot (as the html pages root directory)
If you are using the freely distributed MS-Windows 98 Personal WEB server, the default directory structure is:
C:\Inetpub (as the main directory)
C:\Inetpub\scripts (as the cgi/isapi script directory)
C:\Inetpub\Webpub (as the HTML pages root directory)
In the Win 95 example the ssweb cgi program should be put in the C:\WebShare\scripts directory. The surveyfilename.pos posting file can also be put in this directory, or a subdirectory of scripts can be created, and the posting file located in it. If the posting file is located in a subdirectory of scripts, then the FORM ACTION line in the html survey file must be specified to accommodate this change.
On Windows NT systems be sure the pos file has been given read write access. If the IIS server has been set up to run scripts using system privileges then be sure the system has read write access to the pos files. If scripts are run at user privileges, then be sure the appropriate groups or users (i.e. everyone) have read write access to the .pos files.
Additional Windows NT and IIS Security Settings
Windows NT and IIS require specific settings or they will prevent either the SSWEB.EXE program from running or will prevent the SSWEB.EXE program from writing to the posting file (surveyfilename.POS). Be sure to set to following parameters:
Windows NT file permissions (security):
To generate the HTML survey form:
Additional Information
3a. Form Action cgi-script to run
This field must contain a reference to the task that is to be run on the
WEB server when the respondent on the Internet clicks on the Submit Survey
command. This task must process and save what is referred to as the
"content data". The content data is the answers/text (values) the
respondent entered on the form when it was displayed on their web browser.
Survey Said defines the action as a POST. Another possibility is a GET which
is not recommended because content data can be truncated by some systems
after 255 characters. Survey Said handles this internally upon generating
the HTML file and should not be of concern, however, it should not be edited
in the HTML file that gets generated. The syntax for this field uses forward
slashes.
3b. Include Survey Title at Top of Survey Form
If this box is checked, the option allows the survey title typed in the
text box to appear as the header on the survey form. By default it is
filled with the name given when the survey was created by the Survey Creator.
3c. Include Graphic Image at Top of Survey Form
If this box is checked, the option includes the gif graphic file specified.
The graphic image is the second object displayed unless the survey title is
omitted. Notice that forward slashes are used in this field. The path begins
at the "root directory" as defined for the WWW server. This information is
available from the Webmaster.
3d. Include Graphic Image as Survey Form Background
If this box is checked, the option includes the gif graphic file specified in
the text box immediately below. This graphic image will form the background
for the image created in step #3 above.
3e. Set the Form Color Settings When the HTML Form is Created
Use the preset color dropdown list box to select a color scheme or define your
own by using the eight (8) buttons on either side of the color and links box.
Be sure to view the form in the Internet browser before putting the survey
into production. Color can vary among browsers and operating systems because
of color resolution settings (i.e. 16 color, 256 color or true color). If your
survey uses skip patterns and you use custom selected colors, verify new and
visited link color settings (used for skip patterns) are visible with your
question and answer background settings.
3f. Select Answer Presentation for Single Choice, Multiple Choice and Dual Scale
Select the desired presentation for each of the appropriate answer types
from the drop down boxes.
3g. Table Width Settings Around Question Text and Answer Text
Border width an be set to 0 (no borders) or from 1 to 5 pixels in width.
3h. Miscellaneous - Question Numbers, Address Text, Form Options
If the Suppress Question #s box is checked, the survey form generated will not display the question numbers preceding the question text. A warning message is issued if Skip Patterns are defined and this box is checked. Typically question numbers should be visible when skip patterns are defined.
If the Include Address Info box is checked, text in the address fields as defined by the Survey Creator program (Edit à Address), The company address or whatever text is in the fields will be included at the top of the HTML survey form.
3i. Using the PreExpired and No Cache settings
These settings can be used to deter respondents from submitting multiple surveys (completed HTML forms). If the respondent uses the BACK button on their Internet browser after completing and submitting a completed HTML form, these settings will cause the browser to clear the data they have entered into the fields on the form. If the respondent intends to "stuff the ballot box" then they will have to "suffer through" filling out the HTML form again. This provides some deterrence from clicking on the BACK button and submit button repetitively.
Caution should be used however, with these settings because, there may be legitimate cases where a respondent may want to back up to a previous page to review something and then forward to the HTML survey form. If they do, all their answers will be gone. This could lead to a drop in the return rate and disgruntled respondents.
Also note; the PreExpired and No Cache can cause the browser to "reload" the HTML survey in some cases with older browsers when an "in page" link is clicked. Caution should be used when setting these options if skip patterns are enabled because, clicking on a "Skip To" link could cause the browser to reset all the respondents answers.
3j. Export File Name
The export file name contains the name and path where the HTML file will be saved. By default this file gets written to the same directory as the opened survey file and is assigned the survey file name with an HTM file extension. The syntax for this field is the standard DOS or Windows backslash notation.
To generate the JAVA survey file:
The JAVA survey file should now be created with a file extension of jdb. This file contains the survey questions and options. The JAVA survey file and a web page containing the applet tag and parameter definitions must now be transferred to the web server. Note: Survey Said JDB files have a BINARY file structure and should be transferred as such if using FTP.
The following are examples of an applet tag that would be put on a web page. These examples show how the applet tag is defined and how parameter values are assigned. The parameter values are passed to the applet once it is initialized and running.
There are two versions of the Survey Said Survey Respondent Java 1.1 applet. The new version is named SurveyRespondentAWT.jar and the older version is named SurveySaid99.jar. These jar files are found in the directory where Survey Said has been installed on your PC or file server. Both are Java 1.1 compatible Java applets. They work with Internet Explorer 4.0 or later and Netscape 4.07 or later.
The new Survey Respondent SurveyRespondentAWT.jar example:
<applet code="com.surveysaid.respondent.awt.Main.class" archive="SurveyRespondentAWT.jar" width="450" height="80">
<param name=windowtitle value="Survey Said for the WEB by Marketing Masters">
<param name=buttontext value="Click here to Start the Survey">
<param name=startimage value="http://www.surveysaid.com/java/auto.gif">
<param name=startaudio value="http://www.surveysaid.com/java/auto.au">
<param name=closeimage value="http://www.surveysaid.com/java/thankyou.gif">
<param name=closeaudio value="http://www.surveysaid.com/java/thankyou.au">
<param name=multi_mode value="false">
<param name=surveyfile value="http://www.surveysaid.com/java/auto.jdb">
<param name=formaction value="http://www.surveysaid.com/cgi-bin/ssweb?auto.pos">
</applet> For webservers on MS-Windows change ssweb to ssweb.exe
The older Survey Respondent SurveySaid99.jar example:
<applet code="ss99awt.SurveySaid99.class" archive="SurveySaid99.jar" width="450" height="80">
<param name=windowtitle value="Survey Said for the WEB by Marketing Masters">
<param name=buttontext value="Click here to Start the Survey">
<param name=startimage value="http://www.surveysaid.com/java/auto.gif">
<param name=startaudio value="http://www.surveysaid.com/java/auto.au">
<param name=closeimage value="http://www.surveysaid.com/java/thankyou.gif">
<param name=closeaudio value="http://www.surveysaid.com/java/thankyou.au">
<param name=surveyfile value="http://www.surveysaid.com/java/auto.jdb">
<param name=formaction value="http://www.surveysaid.com/cgi-bin/ssweb?auto.pos">
</applet> For webservers on MS-Windows change ssweb to ssweb.exe
This applet tag can be placed on any page that is appropriate for making the survey available to the respondent. The height and width can be set as required to accommodate the button text you define. The height parameter should not be much less that 80 because message room is required below the button for the applet instructing the respondent to wait while the Survey Respondent is loaded. The preceding example will work as long as the SurveySaid99.jar file is in the same directory as the HTML file containing the applet tag. The form action line proper syntax for a UNIX web server (ssweb?auto.pos) or MS-Windows machine (ssweb.exe?auto.pos).
Parameters you can set include:
If you need to create audio clips for the Java applet to play, there is an excellent shareware program called GoldWave. We have used it to create new clips and convert existing audio files to the au format. The software can be downloaded and purchased at the following web site:
http://www.goldwave.com (it costs a nominal amount - around $30 US.)
The Survey Said Internet Respondent also supports Audio and Image media per question. The parameters are defined with the multimedia tag. Note the multimedia tag starts at multimedia1 and continues sequentially up to however many audio and images need to be defined. After the multimedia tag comes a space followed by the keyword value="". Within double quotes is a: question number space image or audio keyword space Fully qualified URL to audio/image
<param name=multimedia1 value="1 image http://surveysaid.com/java/features01.gif">
<param name=multimedia2 value="3 audio http://surveysaid.com/java/aviation.au">
<param name=multimedia3 value="3 image http://surveysaid.com/java/aviation.gif">
<param name=multimedia4 value="19 audio http://surveysaid.com/java/music.au">
<param name=multimedia5 value="19 image http://surveysaid.com/java/ssglobal.gif">
<param name=multimedia6 value="20 audio http://surveysaid.com/java/closings.au">
<param name=multimedia7 value="20 image http://surveysaid.com/java/closings.gif">
To Summarize:
Transfer the following files to the web server.
About The ssweb CGI-Script (ssweb.c - suitable for UNIX and NT web servers)
This program is written in the c programming language and can be compiled "as is" to run on most web servers that support the Common Gateway Interface (cgi) specification. It uses the web specific environment variable called QUERY_STRING to get the name of the file on the web server in which to put the returned information (respondents answers) supplied by the web browser. The syntax to use this program in the Survey Said "Generate HTML Survey Form" show previously in the Form Action = cgi script/program to run field is:
http://www.myserver.com/path_to_program/ssweb.exe?survey.pos
where:
www.myserver.com = name of the web server that is to receive the respondents answers.
path_to_program = specifies the path to the cgi program (typically /cgi-bin or /scripts)
ssweb.exe = the cgi program to run, in this example it would be ssweb.exe or ssweb (UNIX)
? = specifies the following information is to be put in the QUERY_STRING variable
survey.pos = the name of the file in which to put the respondents answers
Note 1 - (For Security - you must create the .POS file)
The ssweb program (for security concerns) has been written to require the survey.pos file to exist. It can be created by using a simple text editor. It can contain a statement describing what it is or it can be set to zero size. While this file can be named to whatever makes sense for your survey, it must have a file extension of .pos. The reason the ssweb script program requires the file to exist, is so that if a respondent modifies the Form Action line, they cant create unwanted files on the web server.
Note 2
The ssweb cgi program can be used to service several surveys or HTML forms on your web server at the same time. To support several concurrent surveys, simply change the Form Action line to specify different survey posting file names. For example:
1) http://www.myserver.com/path_to_program/ssweb.exe?survey1.pos
2) http://www.myserver.com/path_to_program/ssweb.exe?survey2.pos
3) http://www.myserver.com/path_to_program/ssweb.exe?survey3.pos
1) Example 1 might be the form action line in a HTML survey to collect information about a companys products.
2) Example 2 might be the form action line in a HTML survey to collect information about your web server layout.
3) Example 3 might be the form action line in a HTML survey to collect information about a companys customer service.
Each of these survey can be on-going and present on the web server simultaneously. The same cgi program receives the answers, but puts the respondents answers in the appropriate posting file.
Note 3
Although the web script can be used as is, it is recommended that it be modified to offer the respondent a link to click on after submitting their answers. This "steers" the respondent from "backing up" to the HTML survey form and repeatedly clicking on the submit command.
Step by step procedure for using ssweb
The following is a step by step procedure to set up a survey for the Windows 95 Personal Web Server. It is applicable to other web servers as well, although the directory names will be different.
In this example the Survey Said survey created is named auto. Run the Survey Analyzer program and open the auto survey. Select File and click on Open. Select the auto.sdb survey file name. Then select Export and click on Generate HTML File. The "Generate HTML Survey Form" form will be displayed. In the Form Action=cgi script/program to run text box, type either the fully qualified URL (including the WEB server name or the TCP/IP address) or just the path, script and posting file information (i.e. /scripts/ssweb.exe?auto.pos).
Also note the Export File Name text box at the bottom of the form. Take the default which will create the HTML survey in the Survey Said directory, or optionally specify the web servers directory, if it is on the same system as Survey Said or available via a network drive. If the Web server is a UNIX system, MacIntosh or other, copy or FTP it to the appropriate directory on the web server.
Next copy or FTP the ssweb script program to the scripts directory on the web server. For UNIX web servers FTP the ssweb.c program to the web server and compile and link it. Typically accomplished by typing: c ssweb.c which will produce a file named a.out. Rename this file to ssweb or whatever you prefer to call it. Note: some web servers require a specific file extension like .cgi, or require it to be in a shell-cgi directory. This only needs to be done once unless the C program is modified for specific reasons.
Be sure to create the posting file because the ssweb program will not create one for security purposes. This can be accomplished by a text editor or the UNIX touch command. If you use an editor on a MS-Windows system, you may need to put at least one character in the file, because some MS-Windows editors will not save a file of zero size. The "Title of the Survey" followed by a carriage return is a good idea. In this example create a posting file with the name "auto.pos" and save it in the scripts directory with the ssweb.exe program. On Windows NT systems be sure the pos file has been given read write access. If the IIS server has been set up to run scripts using system privileges then be sure the system has read write access to the pos files. If scripts are run at user privileges, then be sure the appropriate groups or users have read write access to the .pos files.
To summarize:
C:\Webshare\Scripts Contains: ssweb.exe and auto.pos
C:\Webshare\Wwwroot Contains auto.htm
Finally, test the implementation by running a web browser and typing in the URL for the survey. Be sure the WEB server is running. Windows 95 users can run the winipcfg program to get the name or TCP/IP address to use if you are not sure. To run the winipcfg program click on the Start button and select run. In the run form type winipcfg in the Open text box. Click on More Info >> to view the Host Name and IP address.
In the web browser type: http://Host_Name/auto.htm
and fill out the survey. When finished, click on Submit Survey. If all is setup correctly a message will be returned that says: Thank you for your responses! and offers a link to return to the home page that says: Click here to continue!
This is very easy using the cgi script supplied with Survey Said. There is no programming involved. Simply create a HTML page that is to be returned to the respondent. The message the respondent gets after answering the survey varies depending on what the ssweb program finds in the appropriate directories.
1. If the ssweb program detects a survey specific message, it will return the contents to the respondent. This method allows a survey to issue a message to the respondent specific to the survey just completed. To implement a survey specific message, create an HTML page with the same name as the survey and give it a .msg file extension (instead of .htm or .html). For this example, create a auto.msg file and put it in the same directory that the auto.pos file is in. The auto.htm that appears in the typical HTML web page directory contains the actual survey form. This is the one the respondent will answer. The auto.msg file appears in the scripts directory or a subdirectory of scripts, whichever directory is chosen it must contain both the auto.pos and the auto.msg file that is to be sent back to the respondent. Important: If the .msg returned HTML message file resides in the scripts directory (or some other directory which is not a child of the www public root), you MUST SPECIFY the FULLY QUALIFIED URL for any images, audio etc. links contained in the returned HTML page because relative addressing is lost.
2. If the ssweb program does not find or cannot read a survey specific message file as described, it will look for a global survey message file. This file must reside in the same directory as the ssweb script file, not in a subdirectory. The file name must be global.msg in order for the ssweb program to detect it. The file, if detected, will be used as the default message for all surveys that use the ssweb program (assuming it did not find a survey specific message).
3. If neither a specific survey message file nor a global survey message file is detected or successfully read, then the ssweb program will send the respondent a default message.
At this point the HTML file should be verified for correctness by running a Web browser like Netscape. Run the Web browser and open the file filename.htm which should be displayed on the screen. The syntax for open URL or location is;
file://c:/surveysd/filename.htm
The HTML form/JAVA file from the previous section created a file in the directory path that was specified in the Export File Name field. This file can then be copied to the WWW server. See your Web Master (administrator) for copying this file to your WWW server. A reference to the file should appear on an appropriate HTML page. This also should be performed by the Web Master. An example reference would be: <A HREF="httpddoc/auto.htm">Survey</A> - We would appreciate your feedback! This example makes reference to the HTML file auto.htm in a directory httpddoc. The httpddoc directory is a subdirectory of the "root directory" that has been defined for the WWW server. After compiling and linking the cgi-script (c program), copy it to the WEB server as well. The directory you put it in will be somewhat dependent on WEB server software you are running. Check your WEB server software documentation. If you are using a Netscape WEB server, you should use the SHELL-CGI directory location.
The raw data returned by the Web browser to the Web Server is contained in the CONTENT_DATA environment variable or read from stdin (Standard Input). Note that the CONTENT_LENGTH environment variable must be read because the Web Server is not obligated to terminate the stdin record. This is the data that needs to be written by the cgi-script to the posting file. The format of the data which needs to be written to the posting is in a raw format (encoded). The data must be written to the file such that no carriage returns appear in the respondents record except as a record terminator.
The following is an abbreviated example:
QS1=1&QS2=1&QS3=2&QS4=3&QS5=3&QS6=1........&Comments=This+has+been....
QS1=2&QS2=6&QS3=4&QS4=1&QS5=2&QS6
=9........&Comments=I+like+this+auto...
QS1=2&QS2=3&QS3=6&QS4=2&QS5=1&QS6=8........&Comments=The+car+performed...
Check the posting file after answering the Web survey form to ensure the cgi-script is processing the posting request properly. The records in the posting file should look similar to the example above but may not have the ID portion of the record present if Respondent ID is not enabled for the survey. The posting file test answers should also be imported into the Survey Said database using the Import Internet Survey function. Upon successful processing the Survey Said database can be Reset of the test posting answers by: clicking on Edit - Responses and clicking on Reset Survey on the Edit Respondents form.
To answer a survey on the Internet Web:
This step requires the posting file be transferred to the PC which has the Survey Said software installed on it. If the Web server is the same PC as the Survey Said host PC, simply point to the directory which contains the posting file and import the data as described in Step 8.
If the posting file is on a different computer you can use any of the following methods which your environment is capable of supporting.
1. Use FTP (File Transfer Protocol) to copy the file using the network. This method requires both the Survey Said host PC and the Web server be available to each other on the same network and that they are running the TCP/IP protocol. Using FTP, the transfer should be set to ASCII.
2. Use the HTTP (Hypertext Transport Protocol) capability of your web browser (ie Netscape or Internet Explorer). You can also use an Internet browser to download the file to the Survey Said host PC. An example of this would be to open a URL and download the posting file with a command similar to the following: http://www.myserver.com/survey.pos
where myserver is the domain name for your server and survey.pos is the name of the file that contains the posting data.
To import respondents' data from Internet Web surveys for analysis and reporting:
Once the data has been imported into the Survey Said survey files, it is ready for analysis and reporting. The posting file on the Web server can then be reset or cleared of responses. For more information on analysis refer to Using the Survey Analyzer chapter in this manual.
The analysis and reporting of Internet Web survey results is conducted using the same procedures as described in Chapter 6. Refer to that chapter in order to proceed with analysis and reporting of your Internet Web survey results.
Once the posting file has been copied to the Survey Said host PC and imported for analysis it should be reset (cleared of all response data). This step must be take so that duplicate responses are not subsequently transferred for analysis. The following method is used to reset the posting file.
The Survey Analyzer during the Import Internet Survey procedure provides the ability to reset the posting file. If the posting file that was imported is the "live" posting file which resides on the Web Server, then the reset will clear all survey responses to date and initialize the file for capturing new respondent data. This assumes a network drive is mapped to the Web Server and the Survey Said software has direct access to the "live" posting file.
If the posting file just imported is a copy of the "live" posting file on the Web Server, then it should also be reset so as to not import duplicate records. The easiest way to accomplish this is to typically delete the file. The posting file (a text file) may need to be created by a Webmaster manually, because some Web Servers for security reasons, do not allow file creation "on the fly".
UPPERCASE and lowercase
Most WEB servers are case sensitive when processing the file names and URLs. If you are experiencing problems accessing a URL or a file, check whether you are consistent in your case usage.
Multiple Submissions
Survey Said has the ability to detect multiple submissions of surveys based on the TCP/IP address of the computer it received the posting from. The Survey Said cgi script (ssweb) captures the TCP/IP address when a posting (respondents answers) is received upon the respondent clicking the Submit button at the end of an HTML form. The Internet Respondent (Survey Said Java Applet) additionally provides the TCP/IP address of the submitting computer. The TCP/IP address acquired by ssweb and the TCP/IP address acquired by the Java applet appear in the pos file as illustrated in the following example.
Survey responses for Airline questionnaire!
IPS=199.53.54.99&QS2=1&QS3=2&QS4=2&QS5=3&QS6=3&QS7=4&QS9=5&QSP30=&QSP36=&....(Uses 199.53.54.99) IPS=199.53.54.100&IPA=199.53.54.101&QS1=3&QS2=4&QS3=4&QS4=3&QS5=4&QS6=5&.....(Uses 199.53.54.101) IPS=199.53.54.100&IPA=127.0.0.1&QS1=2&QS2=5&QS3=4&QS4=3&QS5=3&QS6=2&.........(Uses 199.53.54.100) IPS=199.53.54.99&QS2=1&QS3=2&QS4=2&QS5=3&QS6=3&QS7=4&QS9=5&QSP30=&QSP36=&....(Uses 199.53.54.99)In the example above the TCP/IP address following the IPS= is acquired by the ssweb program and written to the pos file. This is the TCP/IP address reported to the ssweb program. If there is a firewall or a proxy server between the submitting computer (respondents machine) and the web server running the ssweb program, it is possible that it is performing address translation. This is a method used by some companies to "hide" the actual TCP/IP address of the machines on the "inside". There are other reasons for performing address translation including; using TCP/IP address that are already assigned to someone else (i.e class B). This however, is beyond the scope of this discussion. The second posting line in this example shows a TCP/IP address after a tag labeled IPA= which is the address acquired by the Java applet. If the Java Applet reports a TCP/IP address of 127.0.0.1 the Survey Analyzer program will use the IPS address instead of the IPA reported address of 127.0.0.1 which is a special local host address common to all TCP/IP interfaces.