Re: [DISCUSSION] Native UUID support in PHP

From: Date: Mon, 16 Mar 2020 16:22:14 +0000
Subject: Re: [DISCUSSION] Native UUID support in PHP
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-109069@lists.php.net to get a copy of this message
Hi Ben, Thanks for the feedback, I wasn't aware of net_get_interfaces, but that's really helpful and agree that post your patch, implementing a get_network_mac_addr() function (or similar name) would be amazing. Many thanks Aran On Mon, 16 Mar 2020 at 16:16, Ben Ramsey <ben@benramsey.com> wrote: > > On Mar 16, 2020, at 11:06, Aran Reeks <cdtreeks@gmail.com> wrote: > > > > Hi Internals, > > > > I'd like to open up a discussion around the implementation of a new > > function within PHP for generating a UUID. > > > > Whilst there are libraries out there already for PHP which can generate a > > UUID, all of those libraries have the possibility to generate IDs that > > *could* have a collision. > > > > The specification for UUID versions 1 and 2 allow for collision-free ID > > generation by incorporating the unique MAC addresses from network cards - > > something which can't be accessed from PHP code at present. > > > > I can see two possible methods to enable this; > > > > - New function added to PHP which exposes the MAC address (allowing > > external implementations for UUIDs, as well as other possible purposes > a > > MAC address could be used). > > > > - A new PHP function which introduced a uuid() function which will > > generate and return version-compliant UUIDs. > > > > - Both of the above. > > > > Thoughts and feedback welcome to kickstart conversations and if there's a > > positive consensus, I'd like to put forward an RFC for this to be > > introduced in PHP 8. > > > > > While undocumented, PHP has the method net_get_interfaces() > (since PHP > 7.3.0). It uses getifaddrs() on Linux and > GetAdaptersAddresses() on > Windows to create an array of network interface addresses. > > See > > https://github.com/php/php-src/commit/7ca5a7d84ebdc1b97f49cb460f200db093b96d9d > > Right now, the address is only added when it is an IPv4 or IPv6 address. > It just needs to be modified to look for the correct “family” and set that > as the “mac” array value for the interface. > > I’m currently working on a patch for this, so this might help with one > aspect of your proposal. > > Cheers, > Ben > >

« previous php.internals (#109069) next »