Download + Rilis baru Nmap 5.50

Saya kutipkan langsung dari pengumuman om Fyodor selaku lead developer dari Nmap:

Hi folks! It has been a year since the last Nmap stable release
(5.21) and six months since development version 5.35DC1, so I’m
pleased to release Nmap 5.50! I’m sure you’ll find that it was worth
the wait!

A primary focus of this release is the Nmap Scripting Engine, which
has allowed Nmap to expand up the protocol stack and take network
discovery to the next level. Nmap can now query all sorts of
application protocols, including web servers, databases, DNS servers,
FTP, and now even Gopher servers! Remember those? These capabilities
are in self-contained libraries and scripts to avoid bloating Nmap’s
core engine.

I’m so excited about NSE that I made it the topic of my presentation
with David Fifield last summer at Defcon and the Black Hat Briefings.
You can watch the video at

Since Nmap 5.21, we’ve more then doubled the number of NSE scripts to
177 and NSE libraries jumped from 30 to 54. They’re all detailed at

The actual NSE engine became more powerful as well. Newtargets
support allows scripts like dns-zone-xfer and dns-service-discovery to
add discovered hosts to Nmap’s scan queue. We also added a brute
forcing engine, network broadcast script support, and two new script
scanning phases known as prerule and postrule.

This release isn’t just about NSE. We also added the Nping packet
probing and analysis tool ( in 5.35DC1.
Version 5.50 improves Nping further with an innovative new echo mode

Meanwhile, we added 636 OS fingerprints and 1,037 version detection
signatures to Nmap since 5.21, bringing the totals to 2,982 and 7,319,
respectively. No other tool comes close.

Some people complained that our Zenmap GUI was too slow to handle
giant enterprise networks, so we put a lot of effort into performance.
Time taken to load our benchmark file (a scan of just over a million
IPs belonging to Microsoft corporation) was reduced from hours to less
than two minutes. We also gave Zenmap some new features, including a
script selection interface and printing support.

I’ll list hundreds of other changes later, but let’s cut to the chase:

Nmap 5.50 source code as well as binary packages for Linux, Mac, and
Windows are now available at:

If you find any bugs, please let us know on nmap-dev as described at

Here is the full list of significant changes since I mailed you about
the 5.35DC1 release last July:

o [Zenmap] Added a new script selection interface, allowing you to
choose scripts and arguments from a list which includes descriptions
of every available script. Just click the “Scripting” tab in the
profile editor. [Kirubakaran]

o [Nping] Added echo mode, a novel technique for discovering how your
packets are changed (or dropped) in transit between the host they
originated and a target machine. It can detect network address
translation, packet filtering, routing anomalies, and more. You can
try it out against our public Nping echo server using this command:
nping –echo-client “public”’
Or learn more about echo mode at [Luis]

o [NSE] Added an amazing 46 scripts, bringing the total to 177! You
can learn more about any of them at Here
are the new ones (authors listed in brackets):

broadcast-dns-service-discovery: Attempts to discover hosts’
services using the DNS Service Discovery protocol. It sends a
multicast DNS-SD query and collects all the responses. [Patrik

broadcast-dropbox-listener: Listens for the LAN sync information
broadcasts that the client broadcasts every 20
seconds, then prints all the discovered client IP addresses, port
numbers, version numbers, display names, and more. [Ron Bowes,
Mak Kolybabi, Andrew Orr, Russ Tait Milne]

broadcast-ms-sql-discover: Discovers Microsoft SQL servers in the
same broadcast domain. [Patrik Karlsson]

broadcast-upnp-info: Attempts to extract system information from the
UPnP service by sending a multicast query, then collecting,
parsing, and displaying all responses. [Patrik Karlsson]

broadcast-wsdd-discover: Uses a multicast query to discover devices
supporting the Web Services Dynamic Discovery (WS-Discovery)
protocol. It also attempts to locate any published Windows
Communication Framework (WCF) web services (.NET 4.0 or
later). [Patrik Karlsson]

db2-discover: Attempts to discover DB2 servers on the network by
querying open ibm-db2 UDP ports (normally port 523). [Patrik

dns-update.nse: Attempts to perform an unauthenticated dynamic DNS
update. [Patrik Karlsson]

domcon-brute: Performs brute force password auditing against the
Lotus Domino Console. [Patrik Karlsson]

domcon-cmd: Runs a console command on the Lotus Domino Console with
the given authentication credentials (see also: domcon-brute).
[Patrik Karlsson]

domino-enum-users: Attempts to discover valid IBM Lotus Domino users
and download their ID files by exploiting the CVE-2006-5835
vulnerability. [Patrik Karlsson]

firewalk: Tries to discover firewall rules using an IP TTL
expiration technique known as firewalking. [Henri Doreau]

ftp-proftpd-backdoor: Tests for the presence of the ProFTPD 1.3.3c
backdoor reported as OSVDB-ID 69562. This script attempts to
exploit the backdoor using the innocuous id command by default,
but that can be changed with a script argument. [Mak Kolybabi]

giop-info: Queries a CORBA naming server for a list of
objects. [Patrik Karlsson]

gopher-ls: Lists files and directories at the root of a Gopher
service. Remember those? [Toni Ruottu]

hddtemp-info: Reads hard disk information (such as brand, model, and
sometimes temperature) from a listening hddtemp service. [Toni

hostmap: Tries to find hostnames that resolve to the target’s IP
address by querying the online database at [Ange Gutek]

http-brute: Performs brute force password auditing against http
basic authentication. [Patrik Karlsson]

http-domino-enum-passwords: Attempts to enumerate the hashed Domino
Internet Passwords that are (by default) accessible by all
authenticated users. This script can also download any Domino ID
Files attached to the Person document. [Patrik Karlsson]

http-form-brute: Performs brute force password auditing against http
form-based authentication. [Patrik Karlsson]

http-vhosts: Searches for web virtual hostnames by making a large
number of HEAD requests against http servers using common
hostnames. [Carlos Pantelides]

informix-brute: Performs brute force password auditing against
IBM Informix Dynamic Server. [Patrik Karlsson]

informix-query: Runs a query against IBM Informix Dynamic Server
using the given authentication credentials (see also:
informix-brute). [Patrik Karlsson]

informix-tables: Retrieves a list of tables and column definitions
for each database on an Informix server. [Patrik Karlsson]

iscsi-brute: Performs brute force password auditing against iSCSI
targets. [Patrik Karlsson]

iscsi-info: Collects and displays information from remote iSCSI
targets. [Patrik Karlsson]

modbus-discover: Enumerates SCADA Modbus slave ids (sids) and
collects their device information. [Alexander Rudakov]

nat-pmp-info: Queries a NAT-PMP service for its external
address. [Patrik Karlsson]

netbus-auth-bypass: Checks if a NetBus server is vulnerable to an
authentication bypass vulnerability which allows full access
without knowing the password. [Toni Ruottu]

netbus-brute: Performs brute force password auditing against the
Netbus backdoor (“remote administration”) service. [Toni Ruottu]

netbus-info: Opens a connection to a NetBus server and extracts
information about the host and the NetBus service itself. [Toni

netbus-version: Extends version detection to detect NetBuster, a
honeypot service that mimes NetBus. [Toni Ruottu]

nrpe-enum: Queries Nagios Remote Plugin Executor (NRPE) daemons to
obtain information such as load averages, process counts, logged in
user information, etc. [Mak Kolybabi]

oracle-brute: Performs brute force password auditing against Oracle
servers. [Patrik Karlsson]

oracle-enum-users: Attempts to enumerate valid Oracle user names
against unpatched Oracle 11g servers (this bug was fixed in
Oracle’s October 2009 Critical Patch Update). [Patrik Karlsson]

path-mtu: Performs simple Path MTU Discovery to target hosts. [Kris

resolveall: Resolves hostnames and adds every address (IPv4 or IPv6,
depending on Nmap mode) to Nmap’s target list. This differs from
Nmap’s normal host resolution process, which only scans the first
address (A or AAAA record) returned for each host name. [Kris

rmi-dumpregistry: Connects to a remote RMI registry and attempts to
dump all of its objects. [Martin Holst Swende]

smb-flood: Exhausts a remote SMB server’s connection limit by by
opening as many connections as we can. Most implementations of
SMB have a hard global limit of 11 connections for user accounts
and 10 connections for anonymous. Once that limit is reached,
further connections are denied. This script exploits that limit by
taking up all the connections and holding them. [Ron Bowes]

ssh2-enum-algos: Reports the number of algorithms (for encryption,
compression, etc.) that the target SSH2 server offers. If
verbosity is set, the offered algorithms are each listed by
type. [Kris Katterjohn]

stuxnet-detect: Detects whether a host is infected with the Stuxnet
worm ( [Mak Kolybabi]

svn-brute: Performs brute force password auditing against Subversion
source code control servers. [Patrik Karlsson]

targets-traceroute: Inserts traceroute hops into the Nmap scanning
queue. It only functions if Nmap’s –traceroute option is used and
the newtargets script argument is given. [Henri Doreau]

vnc-brute: Performs brute force password auditing against VNC
servers. [Patrik Karlsson]

vnc-info: Queries a VNC server for its protocol version and
supported security types. [Patrik Karlsson]

wdb-version: Detects vulnerabilities and gathers information (such
as version numbers and hardware support) from VxWorks Wind DeBug
agents. [Daniel Miller]

wsdd-discover: Retrieves and displays information from devices
supporting the Web Services Dynamic Discovery (WS-Discovery)
protocol. It also attempts to locate any published Windows
Communication Framework (WCF) web services (.NET 4.0 or
later). [Patrik Karlsson]

o [NSE] Added 12 new protocol libraries:
– dhcp.lua by Ron
– dnssd.lua (DNS Service Discovery) by Patrik
– ftp.lua by David
– giop.lua (CORBA naming service) by Patrik
– informix.lua (Informix database) by Patrik
– iscsi.lua (iSCSI – IP based SCSI data transfer) by Patrik
– nrpc.lua (Lotus Domino RPC) by Patrik
– rmi.lua (Java Remote Method Invocation) by Martin Holst Swende
– tns.lua (Oracle) by Patrik
– upnp.lua (UPnP support) by Thomas Buchanan and Patrik
– vnc.lua (Virtual Network Computing) by Patrik
– wsdd.lua (Web Service Dynamic Discovery) by Patrik

o [NSE] Added a new brute library that provides a basic framework and logic
for brute force password auditing scripts. [Patrik]

o [Zenmap] Greatly improved performance for large scans by
benchmarking intensively and then recoding dozens of slow parts.
Time taken to load our benchmark file (a scan of just over a million
IPs belonging to Microsoft corporation, with 74,293 hosts up) was
reduced from hours to less than two minutes. Memory consumption
decreased dramatically as well. [David]

o Performed a major OS detection integration run. The database has
grown more than 14% to 2,982 fingerprints and many of the existing
fingerprints were improved. Highlights include Linux 2.6.37, iPhone
OS 4.2.1, Solaris 11, AmigaOS 3.1, GNU Hurd 0.3, and MINIX 2.0.4.
David posted highlights of his integration work at

o Performed a huge version detection integration run. The number of
signatures has grown by more than 11% to 7,355. More than a third
of our signatures are for http, but we also detect 743 other service
protocols, from abc, acap, access-remote-pc, and achat to zenworks,
zeo, and zmodem. David posted highlights at

o [NSE] Added the target NSE library which allows scripts to add newly
discovered targets to Nmap’s scanning queue. This allows Nmap to
support a wide range of target acquisition techniques. Scripts which
can now use this feature include dns-zone-transfer, hostmap,
ms-sql-info, snmp-interfaces, targets-traceroute, and several
more. [Djalal]

o [NSE] Nmap has two new NSE script scanning phases. The new pre-scan
occurs before Nmap starts scanning. Some of the initial pre-scan
scripts use techniques like broadcast DNS service discovery or DNS
zone transfers to enumerate hosts which can optionally be treated as
targets. The other phase (post scan) runs after all of Nmap’s
scanning is complete. We don’t have any of these scripts yet, but
they could compile scan statistics or present the results in a
different way. One idea is a reverse index which provides a list of
services discovered during a network scan, along with a list of IPs
found to be running each service. See [Djalal]

o [NSE] A new –script-help option describes all scripts matching a
given specification. It accepts the same specification format as
–script does. For example, try ‘nmap –script-help “default or
http-*”‘. [David, Martin Holst Swende]

o Dramatically improved nmap.xsl (used for converting Nmap XML output
to HTML). In particular:
– Put verbose details behind expander buttons so you can see them if
you want, but they don’t distract from the main output. In
particular, offline hosts and traceroute results are collapsed by
– Improved the color scheme to be less garish.
– Added support for the new NSE pre-scan and post-scan phases.
– Changed script output to use ‘pre’ tags to keep even lengthy
output readable.
– Added a floating menu to the lower-right for toggling whether
closed/filtered ports are shown or not (they are now hidden by
default if Javascript is enabled).
Many smaller improvements were made as well. You can find the new
file at, and here is an example
scan processed through it: [Tom]

o [NSE] Created a new “broadcast” script category for the broadcast-*
scripts. These perform network discovery by broadcasting on the
local network and listening for responses. Since they don’t
directly relate to targets specified on the command line, these are
kept out of the default category (nor do they go in “discovery”).

o Integrated cracked passwords from the compromise
( into Nmap’s top-5000
password database. A team of Nmap developers lead by Brandon Enright
has cracked 635,546 out of 748,081 password hashes so far
(85%). Gawker doesn’t exactly have the most sophisticated users on
the Internet–their top passwords are “123456”, “password”,
“12345678”, “lifehack”, “qwerty”, “abc123”, “12345”, “monkey”,
“111111”, “consumer”, and “letmein”.

o XML output now excludes output for down hosts when only doing host
discovery, unless verbosity (-v) was requested. This is how it
already worked for normal scans, but the ping-only case was
overlooked. [David]

o Updated the Windows build process to work with (and require) Visual
C++ 2010 rather than 2008. If you want to build Zenmap too, you now
need Python 2.7 (rather than 2.6) and GTK+ 2.22. See [David, Rob
Nicholls, KX]

o Merged port names in the nmap-services file with allocated names
from the IANA ( We
only added IANA names which were “unknown” in our file–we didn’t
deal with conflicting names. [David]

o Enabled the ASLR and DEP security technologies for Nmap.exe,
Ncat.exe and Nping.exe on Windows Vista and above. Visual C++ will
set the /DYNAMICBASE and /NXCOMPAT flags in the PE
header. Executables generated using py2exe or NSIS and third party
binaries (OpenSSL, WinPcap) still don’t support ASLR or DEP. Support
for DEP on XP SP3, using SetProcessDEPPolicy(), could still be
implemented. See [Robert]

o Investigated using the CPE (Common Platform Enumeration) standard
for describing operating systems, devices, and service names for
Nmap OS and service detection. You can read David’s reports at and

o [Zenmap] Improved the output viewer to show new output in constant
time. Previously it would get slower and slower as the output grew
longer, eventually making Zenmap appear to freeze with 100% CPU. Rob
Nicholls and Ray Middleton helped with testing. [David]

o The Linux RPM builds of Nmap and related tools (ncat, nping, etc.)
now link to system libraries dynamically rather than statically.
They still link statically to dependency libraries such as OpenSSL,
Lua, LibPCRE, Libpcap, etc. We hope this will improve portability so
the RPMs will work on distributions with older software (like RHEL,
Debian stable) as well as more bleeding edge ones like
Fedora. [David]

o [NSE] Added the ability to send and receive on unconnected sockets.
This can be used, for example, to receive UDP broadcasts without
having to use Libpcap. A number of scripts have been changed so that
they can work as prerule scripts to discover services by UDP
broadcasting, and optionally add the discovered targets to the
scanning queue:
– ms-sql-info
– upnp-info
– dns-service-discovery
The nmap.new_socket function can now optionally take a default
protocol and address family, which will be used if the socket is not
connected. There is a new nmap.sendto function to be used with
unconnected UDP sockets. [David, Patrik]

o [Nping] Substantially improved the Nping man page. You can read it
online at [Luis, David]

o Documented the licenses of the third-party software used by Nmap and
it’s sibling tools: [David]

o [NSE] Improved the SMB scripts so that they can run in parallel
rather than using a mutex to force serialization. This quadrupled
the SMB scan speed in one large scale test. See [Ron]

o Added a simple Nmap NSE script template to make writing new scripts
easier: [Ron]

o [Zenmap] Made the topology node radiuses grow logarithmically
instead of linearly, so that hosts with thousands of open ports
don’t overwhelm the diagram. Also only open ports (not
open|filtered) are considered when calculating node sizes. Henri
Doreau found and fixed a bug in the implementation. [Daniel Miller]

o [NSE] Added the get_script_args NSE function for parsing script
arguments in a clean and standardized way
( [Djalal]

o Increased the initial RTT timeout for ARP scans from 100 ms to 200
ms. Some wireless and VPN links were taking around 300 ms to
respond. The default of one retransmission gives them 400 ms to be

o Added new version detection probes and signatures from Patrik for:
– Lotus Domino Console running on tcp/2050 (shows OS and hostname)
– IBM Informix Dynamic Server running native protocol (shows hostname, and file path)
– Database servers running the DRDA protocol
– IBM Websphere MQ (shows name of queue-manager and channel)

o Fix Nmap compilation on OpenSolaris (see [David]

o [NSE] The http library’s request functions now accept an additional
“auth” table within the option table, which causes Basic
authentication credentials to be sent. [David]

o Improved IPv6 host output in that we now remember and report the
forward DNS name (given by the user) and any non-scanned addresses
(usually because of round robin DNS). We already did this for
IPv4. [David]

o [Zenmap] Upgraded to the newer gtk.Tooltip API to avoid deprecation
messages about gtk.Tooltip. [Rob Nicholls]

o [NSE] Made dns-zone-transfer script able to add new discovered DNS
records to the Nmap scanning queue. [Djalal]

o [NSE] Enhance ssl-cert to also report the type and bit size of SSL
certificate public keys [Matt Selsky]

o [Ncat] Make –exec and –idle-timeout work when connecting with
–proxy. Florian Roth reported the bug. [David]

o [Nping] Fixed a bug which caused Nping to fail when targeting
broadcast addresses (see [Luis]

o [Nping] Nping now limits concurrent open file descriptors properly
based on the resources available on the host (see [Luis]

o [NSE] Improved ssh2’s kex_init() parameters: all of the algorithm
and language lists can be set using new keys in the “options” table
argument. These all default to the same value used before. Also, the
required “cookie” argument is now replaced by an optional “cookie”
key in the “options” table, defaulting to random bytes as suggested
by the RFC. [Kris]

o Ncat now logs Nsock debug output to stderr instead of stdout for
consistency with its other debug messages. [David]

o [NSE] Added a new function, shortport.http, for HTTP script
portrules and changed 14 scripts to use it. [David]

o Updated to the latest config.guess and config.sub. Thanks to Ty
Miller for a reminder. [David]

o [NSE] Added prerule support to snmp-interfaces and the ability to
add the remote host’s interface addresses to the scanning queue.
The new script arguments used for this functionality are “host”
(required) and “port” (optional). [Kris]

o Fixed some inconsistencies in nmap-os-db and a small memory leak
that would happen where there was more than one round of OS
detection. These were reported by Xavier Sudre from
netVigilance. [David]

o [NSE] Fixed a bug with worker threads calling the wrong destructors.
Fixing this allows better parallelism in http-brute.nse. The problem
was reported by Patrik Karlsson. [David, Patrick]

o Upgraded the OpenSSL binaries shipped in our Windows installer to
version 1.0.0a. [David]

o [NSE] Added prerule support to the dns-zone-transfer script,
allowing it to run early to discover IPs from DNS records and
optionally add those IPs to Nmap’s target queue. You must specify
the DNS server and domain name to use with script
arguments. [Djalal]

o Changed the name of libdnet’s sctp_chunkhdr to avoid a conflict with
a struct of the same name in . This caused a
compilation error when Nmap was compiled with an OpenSSL that had
SCTP support. [Olli Hauer, Daniel Roethlisberger]

o [NSE] Implemented a big cleanup of the Nmap NSE Nsock library
binding code. [Patrick]

o Added a bunch of Apple and Netatalk AFP service detection
signatures. These often provide extra details such as whether the
target is a MacBook Pro, Air, Mac Mini, iMac, etc. [Brandon]

o [NSE] Host tables now have a host.traceroute member available when
–traceroute is used. This array contains the IP address, reverse
DNS name, and RTT for each traceroute hop. [Henri Doreau]

o [NSE] Made the ftp-anon script return a directory listing when
anonymous login is allowed. [Gutek, David]

o [NSE] Added the nmap.resolve() function. It takes a host name and
optionally an address family (such as “inet”) and returns a table
containing all of its matching addresses. If no address family is
specified, all addresses for the name are returned. [Kris]

o [NSE] Added the nmap.address_family() function which returns the address
family Nmap is using as a string (e.g., “inet6” is returned if Nmap is
called with the -6 option). [Kris]

o [NSE] Scripts can now access the MTU of the host.interface device using
host.interface_mtu. [Kris]

o Restrict the default Windows DLL search path by removing the current
directory. This adds extra protection against DLL hijacking attacks,
especially if we were to add file type associations to Nmap in the
future. We implement this with the SetDllDirectory function when
available (Windows XP SP1 and later). Otherwise, we call
SetCurrentDirectory with the directory containing the
executable. [David]

o Nmap now prints the MTU for interfaces in –iflist output. [Kris]

o [NSE] Removed references to the MD2 algorithm, which OpenSSL 1.x.x
no longer supports. [Alexandru]

o [Ncat,NSE] Server Name Indication (SNI) is now supported by Ncat and
Nmap NSE, allowing them to connect to servers which run multiple SSL
websites on one IP address. To enable this for NSE, the nmap.connect
function has been changed to accept host and port tables (like those
provided to the action function) in place of a string and a
number. [David]

o [NSE] Renamed db2-info and db2-brute scripts to drda-*. Added
support other DRDA based databases such as IBM Informix Dynamic
Server and Apache Derby. [Patrik]

o [Nsock] Added a new function, nsi_set_hostname, to set the intended
hostname of the target. This allows the use of Server Name
Indication in SSL connections. [David]

o [NSE] Limits the number of ports that qscan will scan (now up to 8
open ports and up to 1 closed port by default). These limits can be
controlled with the qscan.numopen and qscan.numclosed script
arguments. [David]

o [NSE] Made sslv2.nse give special output when SSLv2 is supported,
but no SSLv2 ciphers are offered. This happened with a specific
Sendmail configuration. [Matt Selsky]

o [NSE] Added a “times” table to the host table passed to scripts.
This table contains Nmap’s timing data (srtt, the smoothed round
trip time; rttvar, the rtt variance; and timeout), all represented
as floating-point seconds. The ipidseq and qscan scripts were
updated to utilize the host’s timeout value rather than using a
conservative guess of 3 seconds for read timeouts. [Kris]

o Fixed the fragmentation options (-f in Nmap, –mtu in Nmap & Nping),
which were improperly sending whole packets in version
5.35DC1. [Kris]

o [NSE] When receiving raw packets from Pcap, the packet capture time
is now available to scripts as an additional return value from
pcap_receive(). It is returned as the floating point number of
seconds since the epoch. Also added the nmap.clock() function which
returns the current time (and convenience functions clock_ms() and
clock_us()). Qscan.nse was updated to use this more accurate timing
data. [Kris]

o [Ncat,Nsock] Fixed some minor bugs discovered using the Smatch
source code analyzer ( [David]

o [Zenmap] Fixed a crash that would happen after opening the search
window, entering a relative date criterion such as “after:-7”, and
then clicking the “Expressions” button. The error message was
AttributeError: ‘tuple’ object has no attribute ‘strftime’

o Added a new packet payload–a NAT-PMP external address request for
port 5351/udp. Payloads help us elicit responses from listening UDP
services to better distinguish them from filtered ports. This
payload goes well with our new nat-pmp-info script. [David, Patrik]

o Updated IANA IP address space assignment list for random IP (-iR)
generation. [Kris]

o [Ncat] Ncat now uses case-insensitive string comparison when
checking authentication schemes and parameters. Florian Roth found a
server offering “BASIC” instead of “Basic”, and the HTTP RFC
requires case-insensitive comparisons in most places. [David]

o [NSE] There is now a limit of 1,000 concurrent running scripts,
instituted to keep memory under control when there are many open
ports. Nathan reported 3 GB of memory use (with an out-of-memory NSE
crash) for one host with tens of thousands of open ports. This limit
can be controlled with the variable CONCURRENCY_LIMIT in
nse_main.lua. [David]

o The command line in XML output (/nmaprun/@args attribute) now does
quoting of whitespace using double quotes and backslashes. This
allows recovering the original command line array even when
arguments contain whitespace. [David]

o Added a service detection probe for master servers of Quake 3 and
related games. [Toni Ruottu]

Enjoy the new release!

PS: Greets to everyone at Shmoocon!

PPS: We even support Gopher over IPv6!

Semoga berguna! Silakan download dan gunakan dengan positif…

Wagiman Wiryosukiro

Petani Sistem Informasi, tukang las plugin & themes Wordpress. Co-Founder Saat ini aktif sebagai Developer & kontributor di OpenMandriva Linux.

You may also like...

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: