2x1=10

because numbers are people, too
Persönliches
Fotografie
Programmierung
    • Ubuntu/NetworkManager: Shell-Skript bei Verbindung mit Netzwerk ausführen

      Das WLAN-Net­zw­erk unser­er Hochschule ist zwar offen, erfordert bei Verbindung aber einen Login auf ein­er zwis­chengeschal­teten Seite. Das ist extrem nervig, wenn manche Pro­gramme bei Verbindung ver­suchen, Dat­en herun­terzu­laden und dann an ungülti­gen (selb­st-sig­nierten) SSL-Zer­ti­fikat­en scheit­ern.

      Kurzum: Ein Skript muss her, das mich bei Verbindung mit dem Uninetz automa­tisch authen­tisiert.
      Ubun­tu 10.10 ver­wen­det Net­work­Man­ag­er für die Ver­wal­tung der Net­zw­erke. Ein man NetworkManager zeigt:

      Net­work­Man­ag­er will exe­cute scripts in the /etc/NetworkManager/dispatcher.d direc­to­ry in alpha­bet­i­cal order in response to net­work events. Each script should be (a) a reg­u­lar file, (b) owned by root, © not writable by group or oth­er, (d) not set-uid, (e) and exe­cutable by the own­er. Each script receives two argu­ments, the first being the inter­face name of the device just acti­vat­ed, and sec­ond an action.

      Kurzum: Ein Skript in /etc/NetworkManager/dispatcher.d wird aufgerufen, wenn die Verbindung hergestellt wird und bekommt als ersten Para­me­ter das Net­zw­erk­in­ter­face übergeben. Voraus­set­zung: Aus­führbar, gehört root und ist nur durch diesen beschreib­bar.

      Mit­tels Python und dem Http-Mod­ul ist es jet­zt möglich, ein schnelles Login-Skript zusam­men­zuschus­tern.

      #!/usr/bin/env python
      # -*- coding: utf-8 -*-
      
      # Skript kopieren nach /etc/NetworkManager/dispatcher.d/99wlan-login
      
      from httplib2 import Http
      from urllib import urlencode
      import os
      import sys
      
      # Login und Netzwerk-Konfiguration
      network_userid = 'login'
      network_password = 'password'
      network_name = 'UninetzName'
      network_loginpage = 'https://login.hochschule.de/loginskript'
      
      # Parameter testen
      if (len(sys.argv) < 3):
      	print('Aufruf: '+sys.argv&#91;0&#93;+' <interface> up')
      	sys.exit(1)
      
      # Parameter auswerten
      iface = sys.argv[1];
      if not (sys.argv[2] == "up"):
      	sys.exit(1)
      
      # Netzwerknamen testen
      is_uni = 0 == os.system('iwconfig '+iface+' | grep '+network_name)
      if is_uni:
      	h = Http()
      	h.request("http://www.google.de")
      	data = dict(userid=network_userid, password=network_password)
      	resp, content = h.request(network_loginpage, "POST", urlencode(data))
      

      Das ganze Ding dann etwa /etc/NetworkManager/dispatcher.d/99wlan-login nen­nen (Skripte wer­den in alpha­betis­ch­er Rei­hen­folge aus­ge­führt), die Rechte anpassen und der Welt­frieden ste­ht direkt vor der Haustür.
      Oder so.

      April 4th, 2011 GMT +2 von
      Markus
      2011-04-4T13:22:56+02:00 2011-04-4T13:26:47+02:00 · 0 Kommentare
      ubuntu
      Allgemein

      Hinterlasse einen Kommentar

      Hier klicken, um das Antworten abzubrechen.

    1. « newer
    2. 1
    3. …
    4. 35
    5. 36
    6. 37
    7. 38
    8. 39
    9. 40
    10. 41
    11. 42
    12. 43
    13. older »
    • Kategorien

      • .NET
        • ASP.NET
        • Core
        • DNX
      • Allgemein
      • Android
      • Data Science
      • Embedded
      • FPGA
      • Humor
      • Image Processing
      • Kalman Filter
      • Machine Learning
        • Caffe
        • Hidden Markov Models
        • ML Summarized
        • Neural Networks
        • TensorFlow
      • Mapping
      • MATLAB
      • Robotik
      • Rust
      • Signal Processing
      • Tutorial
      • Version Control
    • Neueste Beiträge

      • Summarized: The E-Dimension — Why Machine Learning Doesn’t Work Well for Some Problems?
      • Use your conda environment in Jupyter Notebooks
      • Building OpenCV for Anaconda Python 3
      • Using TensorFlow’s Supervisor with TensorBoard summary groups
      • Getting an image into and out of TensorFlow
    • Kategorien

      .NET Allgemein Android ASP.NET Caffe Core Data Science DNX Embedded FPGA Hidden Markov Models Humor Image Processing Kalman Filter Machine Learning Mapping MATLAB ML Summarized Neural Networks Robotik Rust Signal Processing TensorFlow Tutorial Version Control
    • Tags

      .NET Accelerometer Anaconda Bitmap Bug Canvas CLR docker FPGA FRDM-KL25Z FRDM-KL26Z Freescale git Gyroscope Integration Drift Intent J-Link Linear Programming Linux Magnetometer Matlab Mono Naismith OpenCV Open Intents OpenSDA Optimization Pipistrello Player/Stage PWM Python Sensor Fusion Simulink Spartan 6 svn tensorflow Tilt Compensation TRIAD ubuntu Windows Xilinx Xilinx SDK ZedBoard ZYBO Zynq
    • Letzte Kommetare

      • Lecke Mio bei Frequency-variable PWM generator in Simulink
      • Vaibhav bei Use your conda environment in Jupyter Notebooks
      • newbee bei Frequency-variable PWM generator in Simulink
      • Markus bei Using TensorFlow’s Supervisor with TensorBoard summary groups
      • Toke bei Using TensorFlow’s Supervisor with TensorBoard summary groups
    • Blog durchsuchen

    • April 2011
      M D M D F S S
          Nov »
       123
      45678910
      11121314151617
      18192021222324
      252627282930  
    • Self

      • Find me on GitHub
      • Google+
      • Me on Stack­Ex­change
      • Ye olde blog
    • Meta

      • Anmelden
      • Beitrags-Feed (RSS)
      • Kommentare als RSS
      • WordPress.org
    (Generiert in 0,358 Sekunden)

    Zurück nach oben.