Como detectar a mudança de rede (desconectando / conectando o cabo)? -- acos campo com network campo com applescript campo com high-sierra campo com automator camp apple Relacionado O problema

How to detect network change (unplugging/plugging cable)?


2
vote

problema

português

Eu li em vários lugares que a pasta /Library/Preferences/SystemConfiguration é suposto "alterar" no caso de eu desconectar um cabo de rede.

Agora, eu tenho um MacBook Pro, então eu uso um adaptador USB3 para conectar um cabo de rede.

De fato, NADA Quando eu conecto ou desconecte-o dentro desta pasta. Eu vejo claramente em "Configurações de rede" que a conexão LAN é estabelecida ou descartada quando eu conecto ou desconecte o cabo.

Onde deve alguma coisa mudar? Existe alguma pasta ou qualquer outra coisa que eu possa usar como acionador para o AppleScript, ao conectar / desligar o cabo de rede?

english

I have read at multiple places that the folder /Library/Preferences/SystemConfiguration is supposed to "change" in case that I unplug a network cable.

Now, I have a MacBook Pro, so I use a USB3 adapter to connect a network cable.

Indeed, nothing changes when I plug or unplug it within this folder. I clearly see in "Network settings" that the LAN connection is established or dropped when I plug or unplug the cable.

Where should anything change? Is there some folder or anything else that I can use as trigger for AppleScript, when plugging/unplugging the network cable?

              
     
     

Lista de respostas

0
 
vote

Salve este script como um aplicativo e defina-o para executar na inicialização. Ele usará alguma memória, mas o script é muito leve. Você pode atrasar ainda mais. Mente que esta rotina continuará detectando o cabo para sempre, então você deve definir outras condições dentro do seu script para fazer o que você precisa e parar até que algo mude.

   on run {input}     repeat         set input to do shell script "ifconfig -a" as text         set status to offset of "status:" in input         set the_starting_point to status + 0         set the_ending_point to status + 13         set isCableConnected to characters the_starting_point thru the_ending_point of input as string         if isCableConnected is "status: active" then             display dialog "Ethernet On"         else             display dialog "Cable Unplugged"         end if         delay 1     end repeat end run    
 

Save this script as an application and set it to run on startup. It will use some memory but the script is very light. You can delay even more. Mind that this routine will keep detecting the cable forever, so you must set other conditions inside your script to do what you need and stop until something changes.

  on run {input}     repeat         set input to do shell script "ifconfig -a" as text         set status to offset of "status:" in input         set the_starting_point to status + 0         set the_ending_point to status + 13         set isCableConnected to characters the_starting_point thru the_ending_point of input as string         if isCableConnected is "status: active" then             display dialog "Ethernet On"         else             display dialog "Cable Unplugged"         end if         delay 1     end repeat end run  
 
 
     
     
0
 
vote

Este projeto no Github faz o que você está procurando - olhe para lá para ver como ele está fazendo isso. https://github.com/paulbhart/toggeairport

Ele assiste a esses três arquivos para determinar que o status da rede foi alterado:

  • /private/var/run/resolv.conf
  • /library/preferences/systemconfiguration/networkinterfaces.Plist
  • /library/preferences/systemconfiguration/com.apple.airport.preferences.Plist

O objetivo de seu projeto é desativar o WiFi se a LAN estiver conectada, e ligá-la novamente se a LAN estiver desconectada.

 

This project in Github does what you are looking for - look in there to see how he is doing it. https://github.com/paulbhart/toggleairport

He watches these three files to determine that the network status has changed:

  • /private/var/run/resolv.conf
  • /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
  • /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist

The purpose of his project is to turn off WiFi if the LAN is connected, and turn it back on again if the LAN is disconnected.

 
 
-1
 
vote

Talvez você possa usar um atalho para ativar seu script, já que você já está conectando o cabo de qualquer maneira. Basta criar um novo serviço para o Finder usando automator, arraste uma ação Executar AppleScript para o fluxo de trabalho, coloque seu código dentro, salve-o e defina um atalho em Preferências / teclado / atalhos / serviços.

 

Maybe you can use a shortcut to activate your script since you are already plugging the cable anyway. Just create a new Service for finder using Automator, drag a Run Applescript action to the workflow, place your code inside, save it and set a shortcut under Preferences/Keyboard/Shortcuts/Services.

 
 
 
 

Perguntas relacionadas

2  Automator Combine PDF Aplicativo  ( Automator combine pdf application ) 
Eu criei quase uma aplicação automática exata como aqueles que postaram antes de mim e vai da seguinte forma; 1) Obter itens do Finder selecionado 2) Comb...

3  Possível automatizar a entrada de classificações de estrelas e play contagens para música idêntica / duplicada no iTunes?  ( Possible to automate entering star ratings and play counts for identical duplica ) 
Estou no processo de substituição de minha baixa qualidade e lt; 192 kpbs mp3s em arquivos MP3 ou ALAC de 320 KPBS no iTunes. Agora, minha rotina é importar...

4  Remover serviços de menus de contexto (mas deixá-los no menu de serviços do aplicativo)  ( Remove services from context menus but leave them in the apps services menu ) 
Eu criei alguns serviços com automator e parece que o OS X adiciona automaticamente isso ao menu de contexto de arquivos / pastas que eles se aplicam. É possí...

0  Como pesquisar PDFs e extrair páginas correspondentes com automator?  ( How to search pdfs and extract matching pages with automator ) 
Eu estou tentando fazer um fluxo de trabalho automático que vai me dar: . Especifique uma pasta para executar as ações em Pesquisar todos os arquivos PDF ...

3  Usando Automator ou AppleScript para criptografar / descriptografar com OpenSSL  ( Using automator or applescript to encrypt decrypt with openssl ) 
Eu gostaria de saber como usar o Automator ou o AppleScript para criar uma gota que comprima / descompactar (tar.gz) e criptografar / descriptografar com arqu...

6  MacOS Catalina causando "Encontrar :.: Operação não permitido" erros  ( Macos catalina causing find operation not permitted errors ) 
Eu tenho um fluxo de trabalho de automação que uso como uma ação rápida. É preciso um item localizador e chama um script de shell com ele. Parte do script de ...

1  Digitando automaticamente uma senha no terminal  ( Automatically typing a password into terminal ) 
Eu quero ser capaz de alterar a senha de uma imagem de disco, mas totalmente automatizada. Existe uma maneira de inserir uma string como uma senha em vez de t...

0  Convertendo Ação Automático no AppleScript para Bash Script  ( Converting automator action in applescript to bash script ) 
Acabei de escrever um aplicativo automático usando o AppleScript (junto com algumas linhas de bash) para iniciar o FTP com um único clique. No entanto, corre ...

1  Como executar o script do shell no lançamento do aplicativo?  ( How to run shell script upon application launch ) 
Não tenho certeza se isso pertence aqui ou no superusuário, mas é o Mac específico, então eu vou com aqui. Eu escrevi um script Ruby que edita o arquivo de ...

1  Em um serviço, como obter um URL de rico texto?  ( In a service how to get a url from rich text ) 
Estou interessado em fazer um serviço (usando automator, se possível) que me permita executar uma ação em um URL. Se o URL existir como texto simples, isso ...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.