By default, the mac address of the computer on which the DBMS instance is running is returned.
But you can get the mac address of any other computer, see getmac /?.

I checked for versions 2009.1/2010.1: unfortunately, the $zu(114,0) returns nothing, therefore, remains variant with the command line.

Example for Windows, provided that the system has a single network card:

#include %syConfig
 w $zu(144,1,$$$DEFETHADDR),!,"------",!
 d $system.OBJ.DisplayError(##class(%Net.Remote.Utility).RunCommandViaCPIPE("getmac /NH /fo table",,.result))
 w $p(result," ",1)

PS: for other OS command line may be different.

Important note: it should be noted that the proposed solutions refer only to the port of the private web server, which may not even be installed.
In the case of an external web server, this is not possible.

Thank you for your comment.
This code is taken from the source code %SYS, which in theory should be an example for application developers.

I hope that InterSystems developers will see your comment and make appropriate changes.

Intel i5-2400

10000 digits ~ 58 sec.

calcPI(n) public { 
  s $lb(len,nines,predigit,r)=$lb(10*n\3,0,0,"")
  i=1:1:len a(i)=2
    i=len:-1:1 x=10*a(i)+(q*i), a(i)=x#(2*i-1), q=x\(2*i-1)
    a(1)=q#10, q=q\10
    q=9 {
    }elseif q=10 {
      r=r_(predigit+1)_$$repeat^%qarfunc(0,nines), predigit=0, nines=0
      s:nines r=r_$$repeat^%qarfunc(9,nines), nines=0

And if so?

w $zobjref(^||PPG(1)).Name

Still take a look at $$$objOrefToInt/$$$objIntToOref (

PS: it should be noted that OREF ≠ OID and serve different purposes.

I found out the reason for the difference in the result BASIC256:


len = 10*n\4,

must be

len = 10*n\3,

Error on site.

Translation of: LUA

calcPILua(n=1000) public { 
  len = 10*n\3,
    nines = 0,
    predigit = 0
  j=1:1:len a(j)=2
    i=len:-1:1 {
      = 10*a(i) + (q*i),
    q=9 {
      nines nines + 1
    }elseif q=10 {
      = 1:1:nines 0
      predigit = 0, nines = 0
      predigit q
      nines {
        = 1:1:nines 9
        nines = 0

The result of this example is exactly the same as the result of the program C# (tested at n=10000).