Bagaimana cara mengaktifkan / menonaktifkan http apache berdasarkan lokasi jaringan laptop saya?


0

Saya memiliki laptop yang saya gunakan untuk konsultasi dan yang bepergian dengan saya dari klien ke klien. Saya menggunakan httpd untuk kode / tes pada mesin saya di rumah dan mengikatnya ke alamat global untuk menguji fungsionalitas pada perangkat lain (iPad, Android, dkk).

Saya tidak ingin ip saya keluar ketika saya menghubungkan laptop saya ke jaringan lain dan karenanya dengan rajin telah mematikan apache ketika saya meninggalkan jaringan pribadi saya, tetapi saya ingin tingkat otomatisasi agar dapat menyatakan:

stop service httpd
when
network location <> 'X'

atau bahkan:

firewall service httpd
when
network location <> 'X'

Saya telah melihat bidang kontrol dan akan menggali lebih jauh, tetapi sepertinya itu mungkin tidak berfungsi pada OS X 10.9.

Adakah yang melakukan ini:

  1. Lebih umum dengan kontrol apache dan jaringan?
  2. Lebih khusus pada OS X?

Jawaban:


0

Saya belum melakukan ini sendiri tetapi kedengarannya tidak rumit untuk skrip jadi di sini adalah satu-baris untuk membangun:

if [[ `ifconfig \-u \`networksetup -listallhardwareports|grep Wi-Fi -A 1|grep Device|awk '{print $2}'\` inet|grep inet|awk '{print $2}'` = 192.168.1.100 ]];then apachectl start; else apachectl graceful-stop;fi

Hancurkan ini:

  • Saya dulu networksetup -listallhardwareports|grep Wi-Fi -A 1|awk '{print $2}'mencari tahu pengenal perangkat. Dalam kasus saya itu en0.
  • Saya membungkus ini dalam backtics sehingga akan disalurkan ke ifconfig -u (en0) inet. The -upencarian untuk adapter yang aktif atau UP dan inetkembali Info IPv4. Anda bisa mengubahnya inet6untuk mengubah kueri ke IPv6.
  • Saya membungkus if [[ ]]tes ini dan membandingkan nilai dengan alamat IP yang saya inginkan untuk memungkinkan pemberdayaan dan berhenti jika pertandingan gagal.

Anda hanya harus memutuskan bagaimana Anda ingin memulai ini. Mungkin skrip masuk atau skrip peluncuran untuk dijalankan sesuka hati. HTH.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.