package Ġdev . sch la ubi . for p . analyze . core . utils Ċ Ċ import Ġjava . net . NetworkInterface Ċ import Ġjava . security . Secure Random Ċ import Ġjava . util .* Ċ Ċ // ĠA dopt ed Ġfrom : Ġhttps :// github . com / cal lic oder / java - snow flake / blob / master / src / main / java / com / cal lic oder / snow flake / Snow flake . java # L 9 4 - L 1 1 4 Ċ internal Ġactual Ġfun Ġcreate NodeId ( max NodeId : ĠLong ): ĠLong Ġ{ ĊĠĠĠ Ġvar ĠnodeId : ĠLong Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsb Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġval Ġnetwork Interfaces : ĠEnumeration < NetworkInterface > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNetwork Interface . get Network Interfaces () ĊĠĠĠĠĠĠĠ Ġwhile Ġ( network Interfaces . hasMore Elements ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnetwork Interface : ĠNetwork Interface Ġ= Ġnetwork Interfaces . nextElement () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmac : ĠByteArray Ġ= Ġnetwork Interface . hardware Address ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( mac Port Ġin Ġmac ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( String . format ("% 0 2 X ", Ġmac Port )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsb . toString (). hashCode (). to Long () ĊĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSecure Random (). next Long () ĊĠĠĠ Ġ} ĊĠĠĠ ĠnodeId Ġ= ĠnodeId Ġand Ġmax NodeId ĊĠĠĠ Ġreturn ĠnodeId Ċ } Ċ