Remove address fields from Mac address book using Applescript
Tag : macos , By : user169463
Date : March 29 2020, 07:55 AM
Any of those help Your logic is sound, and would probably work if you replaced remove with delete, but you can shrink it even further; all that you actually need is the following simple 1.5-liner: tell application "Address Book" to ¬
delete (addresses of people whose label is "home")
|
AppleScript - determine the network service to which the current IP address is bound
Tag : macos , By : Lunis Neko
Date : March 29 2020, 07:55 AM
will be helpful for those in need @mcgrailm's answer shows you how to obtain all active (read: not disabled) network services, whether currently bound to addresses or not. This answer, by contrast, shows you how to determine the network service to whose interface the current (primary) IPv4 address is bound: # Obtain the [network] `service` instance underlying the
# current IPv4 address...
set serviceWithPrimaryIpv4Address to my networkServiceByIp4Address("")
# ... and extract the name.
set nameOfServiceWithPrimaryIpv4Address to name of serviceWithPrimaryIpv4Address
# ---- Helper handlers.
# SYNOPSIS
# networkServiceByIp4Address([addr])
# DESCRIPTION
# Given (one of) the local system's IPv4 address(es), returns the network service object whose interface
# the address is bound to (class `network service` is defined in `Sytem Events.sdef`).
# If `addr` is an empty string or a missing value, the current primary IPv4 address is used.
# An error is thrown if no matching service is found.
on networkServiceByIp4Address(addr)
local macAddress
set macAddress to my ip4ToMacAddress(addr)
tell application "System Events"
try
tell current location of network preferences
return first service whose (MAC address of interface of it) is macAddress
end tell
end try
end tell
error "No network service found matching IP address '" & addr & "'." number 500
end networkServiceByIp4Address
# SYNOPSIS
# ip4ToMacAddress([addr])
# DESCRIPTION
# Given (one of) the local system's IPv4 address(es), returns the corresponding network interface's
# MAC address (regardless of interface type).
# If `addr` is an empty string or a missing value, the current primary IPv4 address is used.
# An error is thrown if no matching MAC address is found.
on ip4ToMacAddress(addr)
if addr as string is "" then set addr to IPv4 address of (system info)
try
do shell script "ifconfig | awk -v ip4=" & ¬
quoted form of addr & ¬
" 'NF==2 && $2 ~ /^[a-f0-9]{2}(:[a-f0-9]{2}){5}$/ {macAddr=$2; next} $1 == \"inet\" && $2 == ip4 {print macAddr; exit}'"
if result ≠ "" then return result
end try
error "No MAC address found matching IP address '" & addr & "'." number 500
end ip4ToMacAddress
my ip4ToMacAddress("")
|
Copy a file from a network folder using applescript
Date : March 29 2020, 07:55 AM
seems to work fine Try the following solution: When you only uncomment the set mycopypath to choose file and comment the rest, you will get the correct path as a result in the bottom half of Script Editor. (See red arrow in screenshot). tell application "Finder" to mount volume "Your disk path/name"
mount volume "afp://192.168.200.1/" as user name "your username" with password "your password"
|
How to increment and get the next IPv6 network address from the current network address
Tag : python , By : Matt Leacock
Date : March 29 2020, 07:55 AM
hope this fix your issue The library ipcalc has routines to make math on ip addresses fairly easy. But if it would be preferable to not install ipcalc, a class that inherits from ipaddress.IPv6Network can be constructed. Code import ipaddress
class BetterIPv6Network(ipaddress.IPv6Network):
def __add__(self, offset):
"""Add numeric offset to the IP."""
new_base_addr = int(self.network_address) + offset
return self.__class__((new_base_addr, self.prefixlen))
def size(self):
"""Return network size."""
return 1 << (self.max_prefixlen - self.prefixlen)
import itertools as it
network = BetterIPv6Network(u'4001:1::/32')
network_addrs = (network + i * network.size() for i in it.count())
print(next(network_addrs))
print(next(network_addrs))
print(next(network_addrs))
4001:1::/32
4001:2::/32
4001:3::/32
import ipaddress
class BetterIPv6Network(ipaddress.IPv6Network):
def __add__(self, offset):
"""Add numeric offset to the IP."""
new_base_addr = int(self.network_address) + offset
new_base_addr_str = str(self.__class__(new_base_addr)).split('/')[0]
return self.__class__(
new_base_addr_str + '/' + str(self).split('/')[1])
def size(self):
"""Return network size."""
return 1 << (self.max_prefixlen - self.prefixlen)
|
Call an AppleScript ObjC class that is contained in a separate file in the AppDelegate.applescript file
Date : March 29 2020, 07:55 AM
hope this fix your issue The two ways vadian mentioned are correct. Here in details: Make sure your script is wrapped like this: script yourScriptName
property parent:NSObject
on method1
log "hello world"
end
-- more methods
end script
property yourScriptName: missing value
yourScriptName's method1() -- hello world
script bridge
property parent: NSObject
property yourScriptName:missing value
property otherScript:missing value
-- more...
end script
property bridge:missing value -- connected in IB like before
bridge's yourScriptName's method1() -- hello world
|