Hostname: Difference between revisions

From Rosetta Code
Content added Content deleted
(add E example)
m (fix tag)
Line 93: Line 93:


=={{header|Modula-3}}==
=={{header|Modula-3}}==
<lang modula3>MODULE Hostname EXPORTS Main;
<pre>
MODULE Hostname EXPORTS Main;


IMPORT IO, OSConfig;
IMPORT IO, OSConfig;
Line 100: Line 99:
BEGIN
BEGIN
IO.Put(OSConfig.HostName() & "\n");
IO.Put(OSConfig.HostName() & "\n");
END Hostname.
END Hostname.</lang>
</pre>


=={{header|Objective-C}}==
=={{header|Objective-C}}==

Revision as of 22:47, 20 May 2009

Task
Hostname
You are encouraged to solve this task according to the task description, using any language you may know.

Find the name of the host on which the routine is running.

Ada

Works with GCC/GNAT <lang ada>with Ada.Text_IO; use Ada.Text_IO; with GNAT.Sockets;

procedure Demo is begin

  Put_Line (GNAT.Sockets.Host_Name);

end Demo;</lang>

ALGOL 68

Works with: ALGOL 68G version Any - tested with release mk15-0.8b.fc9.i386
Works with: POSIX version .1

<lang algol>STRING hostname; get(read OF execve child pipe("/bin/hostname","hostname",""), hostname); print(("hostname: ", hostname, new line))</lang>

AWK

$ awk 'BEGIN{print ENVIRON["HOST"]}'
E51A08ZD

C

Works with: gcc version 4.0.1
Works with: POSIX version .1

<lang c>#include <limits.h>

  1. include <unistd.h>

int main() {

   char name[_POSIX_HOST_NAME_MAX+1];
   gethostname(name, _POSIX_HOST_NAME_MAX+1);
   return 0;

}</lang>

C#

<lang csharp>System.Net.Dns.GetHostName();</lang>

E

<lang e>makeCommand("hostname")()[0].trim()</lang>

Not exactly a good way to do it. A better way ought to be introduced along with a proper socket interface.

Factor

host-name

Fortran

Works with: gfortran

The function/subroutine HOSTNM is a GNU extension. <lang fortran>program HostTest

 character(len=128) :: name 
 call hostnm(name)
 print *, name

end program HostTest</lang>

Haskell

Library: network
import Network.BSD
main = do hostName <- getHostName
          putStrLn hostName

Icon

procedure main()
  write(&host)
end

IDL

 hostname = GETENV('computername')

J

 > {: sdgethostname coinsert 'jsocket' [ load 'socket'

Java

<lang java> import java.net.*;

class DiscoverHostName {

   public static void main(String[] args) {
       try {
           String hostName = InetAddress.getLocalHost().getHostName();
           System.out.println(hostName);
       } catch (UnknownHostException e) { // Doesn't actually happen, but Java requires it be handled.
       }
   }

} </lang>

Modula-3

<lang modula3>MODULE Hostname EXPORTS Main;

IMPORT IO, OSConfig;

BEGIN

 IO.Put(OSConfig.HostName() & "\n");

END Hostname.</lang>

Objective-C

<lang objc>NSLog(@"%@", [[NSHost currentHost] name]);</lang>

OCaml

<lang ocaml>Unix.gethostname()</lang>

Perl

Works with: Perl version 5.8.6

<lang perl>use Sys::Hostname;

$name = hostname;</lang>

PHP

<lang php>echo $_SERVER['HTTP_HOST'];</lang>

<lang php>echo php_uname('n');</lang>

Pop11

lvars host = sys_host_name();

Python

Works with: Python version 2.5

<lang python>import socket host = socket.gethostname()</lang>

Ruby

<lang ruby>require 'socket' host = Socket.gethostname</lang>

Scheme

Works with: Chicken Scheme

<lang scheme>(use posix) (get-host-name)</lang>

Standard ML

<lang sml>NetHostDB.getHostName ()</lang>

Tcl

The basic introspection tool in TCL is the info command. It can be used to find out about the version of the current Tcl or Tk, the available commands and libraries, variables, functions, the level of recursive interpreter invocation, and, amongst a myriad other things, the name of the current machine:

<lang Tcl>set hname [info hostname]</lang>

Toka

2 import gethostname
1024 chars is-array foo
foo 1024 gethostname
foo type

UNIX Shell

hostname

or

uname -n