back to index

SpeakFreely Sample Send
      Detection of your IP address:
      IP ranges and special IP addresses:
      Links and references:

Tue Dec 30 2003, 21:28 PM

SpeakFreely Sample Send

This script sends an one-second SpeakFreely audio sample ("This is a test of SpeakFreely") to the specified IP address, port 2074. Used codec is GSM, no encryption. Rich on quantization noise.

Your IP address as it appears to the webserver:

May need to be changed if you access the web through a third-party proxy, which the detected address below may indicate.

If you don't hear a sound, try connecting with, local loop. If you don't hear yourself even then, the problem is in your soundcard setting. If you do, and don't hear anything with this test, check the firewall/NAT setting.

Detection of your IP address:

Local IP address by Java applet (reliable when available): Sorry, Java is disabled
Local IP address java applet supplied from
If it says "ERROR", I don't know why.

Local IP address by X-Forwarded-For:

External IP address by REMOTE_ADDR:
This indicates how the server sees you. If this mismatches against the one detected by the applet, you may be behind NAT.

IP ranges and special IP addresses: Localhost. Local address of every machine. "Me". Unspecified  Broadcast to all
10.*.*.* LANs; indicates you are behind NAT
192.168.*.* LANs; indicates you are behind NAT
172.(16-31).*.*LANs; indicates you are behind NAT. Unusual range.
169.254.*.* Assigned by Windows when DHCP unavailable. If you can access the Net, you are behind NAT.
224.239.*.* Reserved for multicast, not used for LANs
240.255.*.* Reserved by IANA

Links and references:

IP: IP address, or Internet Protocol address, is the "home address" of every computer

connected into the Internet (or LAN, if the LAN uses TCP/IP - which in vast majority of cases is so). IP address can be imagined as a house number/address. The number itself is a 32-bit number, usually written down as a sequence of 4 8-bit numbers separated by dots; so no number is greater than 255.

port number: Port number is the number of port on which a service is listening. Can be

imagined as the number of office door in the house specified by the IP address. The door may be locked (no service there), or open (and then there is a daemon sitting behind them, prepared to receive and handle the incoming connections as they trickle or pour in). By requesting a service, you have to specify both IP address and port number; when you don't specify the latter, it's usually implicitly specified as the default for the given service you want: 80 for HTTP (web), 2074 for SpeakFreely, 22 for SSH, 21 for FTP, 53 for DNS. Assignment between service and port is completely arbitrary, however

The port number works together with the protocol; a service on TCP port X can be something entirely different than service on the same port number but UDP.

protocol: Protocol is the class of connection requested. The most common protocols are:
IPInternet Protocol - the protocol for internet connection. Parent of all following ones.

Serves to get the packets of the following protocols where they belong. Doesn't do any kind of checking, as it's the duty of the higher-level protocols it's parent of.

TCPTransmission Control Protocol - for services where reliable delivery of data is needed. Doesn't lose data, but has higher delays than UDP. Used by vast majority of services - HTTP (web), SMTP/POP/IMAP (email), vast majority of chat/messaging programs. Can be tunneled through a HTTPS proxy.
UDPUser Datagram Protocol - for fire-and-forget packet delivery. There is no checking if the data got to the other side, no reordering of the packets. So there are no delays associated with this, but it also means packets can be lost without detection (in which case TCP resends them again). Speakfreely uses it. Also it's used by DNS. Cannot be tunneled through a HTTPS proxy.
ICMPInternet Control Message Protocol - similar to UDP but without ports. Usually not used to carry data, as it is intended for communication of system-level messages related to the connections (eg, that the given port isn't available). Used by ping and Windows traceroute. Often filtered on the firewalls for security reasons.
There are many more protocols out there, but they aren't that common. Examples are ARP, for translating MAC addresses to IP ones, which operates over Ethernet protocol, or IPX, which is parallel to IP and is used on Novell LANs. These protocols handle only the connections themselves; there are even higher protocols that describe the services themselves, eg. SMTP for email sending, POP3 or IMAP for picking email from the mailbox, HTTP for browsing Web, HTTPS for secure browsing of the Web (nothing more than HTTP wrapped in SSL protocol), and many many more, in majority of cases working over the TCP protocol.

NAT: You have a firewall/router that acts as the gateway between your local network and

the Internet, and looks as one IP address from the side of the Internet. One public IP then can "masquerade" as dozens, or even hundreds, of local IPs. Many ISPs offer NATted addresses as lower-cost but reduced-usability option, some of them even having the nerve of touting it as "firewall" (which it technically can serve as, but you can't do a lot of things you can do when your machine is visible from the outside). NAT is often performed by an ADSL modem/router, so there can be even single-computer networks using NAT.

Port mapping: When a packet or connection request comes to the external (visible from the Internet) side

of the NAT performing gateway, the gateway doesn't know for what computer:port on its internal (visible from the LAN) side it is intended, unless it's explicitly specified; this specification is called "port mapping". The firewall is told that all incoming packets for port X have to be relayed to machine, for port Y to machine, etc. To work through NAT, the program has to behave "nicely" - initiate the connection from the outside, and use the same port number for both sending and receiving data; common for TCP client sessions (eg. web browsing), but not the default behavior with SpeakFreely, except the newest version here.

HowStuffWorks - How Network Address Translation Works
Network Address Translation (NAT) FAQ

If you have any comments or questions about the topic, please let me know here:
Your name:
Your email:
Leave this empty!
Only spambots enter stuff here.