Skip to content

Instantly share code, notes, and snippets.

@mikemackintosh
Created July 25, 2021 21:41
Show Gist options
  • Save mikemackintosh/b6aef05fa5c31709288d11edbdce3ed1 to your computer and use it in GitHub Desktop.
Save mikemackintosh/b6aef05fa5c31709288d11edbdce3ed1 to your computer and use it in GitHub Desktop.
package main
// #cgo LDFLAGS: -framework CoreFoundation -framework SystemConfiguration -framework IOKit
// #include <CoreFoundation/CoreFoundation.h>
// #import <SystemConfiguration/SystemConfiguration.h>
// #import <arpa/inet.h>
// #include <IOKit/IOKitLib.h>
//
// CFArrayRef
// createInterface()
// {
// SCPreferencesRef preferences = SCPreferencesCreate(kCFAllocatorDefault, CFSTR("PRG"), NULL);
// if (!preferences) {
// return NULL;
// }
// CFArrayRef serviceArray = SCNetworkServiceCopyAll(preferences);
// if (!serviceArray) {
// CFRelease(preferences);
// return NULL;
// }
// return serviceArray;
// }
//
// CFArrayRef
// CreateArrayOfValidNetworkServiceIds()
// {
//
// CFStringRef pattern = CFSTR("Setup:/Network/Service/[^/]+");
//
// SCDynamicStoreRef dynamicStoreRef = SCDynamicStoreCreate(NULL, CFSTR("CreateListOfActiveIPv4NetworkServiceIds"), NULL, NULL);
// if (!dynamicStoreRef) {
// return NULL;
// }
//
// CFArrayRef keyList = SCDynamicStoreCopyKeyList(dynamicStoreRef, pattern);
// if (!keyList) {
// CFRelease(dynamicStoreRef);
// return NULL;
// }
//
// CFRelease(dynamicStoreRef);
//
// NSMutableArray *serviceIdList = [[NSMutableArray alloc] initWithCapacity:CFArrayGetCount(keyList)];
// if (!serviceIdList) {
// CFRelease(keyList);
// return NULL;
// }
//
// for (NSString *key in (NSArray *)keyList) {
// NSString *serviceId = [key substringFromIndex:[key length] - 36];
// [serviceIdList addObject:serviceId];
// }
//
// CFRelease(keyList);
// return (CFArrayRef)serviceIdList;
// }
//
// const char * ConvertNetworkAddressToString(int networkAddress)
// {
// // convert to string and return it
// struct in_addr address_struct;
// memset(&address_struct, 0, sizeof(address_struct));
// address_struct.s_addr = htonl(networkAddress);
// return inet_ntoa(address_struct);
// }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment