View previous topic :: View next topic |
Author |
Message |
Obi-Lan Apprentice
Joined: 21 Jan 2005 Posts: 230 Location: Riihimäki
|
Posted: Fri Nov 03, 2006 3:07 pm Post subject: routen reittien poisteleminen |
|
|
Voiko millään komennolla poistaa kaikki esim. tiettyyn verkkokorttiin liittyvät routet kerralla? Tai skriptillä? |
|
Back to top |
|
|
Shopro l33t
Joined: 12 May 2004 Posts: 678 Location: Dayton, OH, USA
|
Posted: Fri Nov 03, 2006 8:45 pm Post subject: |
|
|
Mitä haet takaa sillä? Ihan vaan mielenkiinnosta. _________________ Just because I have nothing to say is no reason why you shouldn't listen. |
|
Back to top |
|
|
Obi-Lan Apprentice
Joined: 21 Jan 2005 Posts: 230 Location: Riihimäki
|
Posted: Sat Nov 04, 2006 12:26 pm Post subject: |
|
|
Tarkoitus olisi väsää skripti joka poistaa kaikki wan kortin routet, lisää yhden uuden routen, avaa pptp (ppp0) tunnelin ja routtaa kaiken liikenteen sen kautta. Olen saanut tämän toimimaan pptpconfigilla, mutta tahtoisin duunaa skriptin mikä hoitaa kaiken kerralla, esim. jos tarvitsee kone bootata yms. |
|
Back to top |
|
|
jroo n00b
Joined: 06 Mar 2005 Posts: 52 Location: Finland
|
Posted: Sat Nov 04, 2006 8:29 pm Post subject: |
|
|
Tuohon varmaan riittää default gatewayn poisto:
Ja uuden gatewaynhän saa asetettua komennolla
Code: | route add default gw <gatewayn osoite> |
|
|
Back to top |
|
|
Obi-Lan Apprentice
Joined: 21 Jan 2005 Posts: 230 Location: Riihimäki
|
Posted: Sat Nov 04, 2006 10:50 pm Post subject: |
|
|
Ee ainaki php liittymästä tulee vielä aliverkko routeihin messiin, ja tuntuu että koko kaupunki on samassa aliverkossa niin sekin pitäisi poistaa (tämä oikeesti haittaa). Tietty tiedän mikä se on ja voin tehdä spesifisen komennon sille, mutta kiinnostaisi tietää jos voin poistaa verkot määrittelemättä sen tarkemmin. |
|
Back to top |
|
|
jroo n00b
Joined: 06 Mar 2005 Posts: 52 Location: Finland
|
Posted: Sun Nov 05, 2006 7:05 am Post subject: |
|
|
Eipä toiminutkaan tuo ehdotus... |
|
Back to top |
|
|
jroo n00b
Joined: 06 Mar 2005 Posts: 52 Location: Finland
|
Posted: Sun Nov 05, 2006 7:55 am Post subject: |
|
|
Tuossa pitäisi olla toimiva python-skripti tuohon ongelmaan.
Code: | #!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
from subprocess import Popen
from subprocess import PIPE
## \brief Returns route table as list of strings without the header row
def readRouteOutput():
process = Popen( 'route -n', shell = True, stdout = PIPE )
routeTable = process.stdout.readlines()
return routeTable[ 2: ]
## \brief Transforms route table presented as string into tuple.
#
# Tuple contents:
# ( Type, IP, Netmask, Interface )
# Type is eithen 'host' or 'net'
# Interface is the name of the interface
def transformStringToRouteTuple( pRoute ):
asList = pRoute.split()
type = None
if 'H' in asList[ 3 ]:
type = 'host'
else:
type = 'net'
ip = asList[ 0 ]
netmask = asList[ 2 ]
interface = asList[ 7 ]
routeTuple = ( type, ip, netmask, interface )
return routeTuple
def transformStringsToRouteTupleList( pRouteTable ):
routeTupleList = []
for route in pRouteTable:
routeTupleList.append( transformStringToRouteTuple( route ) )
return routeTupleList
def removeRoutesFromIf( pIfname, pRouteTable ):
for route in pRouteTable:
if route[ 3 ] == pIfname:
command = 'route del' + \
' -' + route[ 0 ] + \
' ' + route[ 1 ]
if route[ 0 ] == 'net':
command += ' netmask ' + route[ 2 ]
#print command
os.system( command )
def main( pArgv ):
if len( pArgv ) != 2:
print "Give interface name."
else:
routesAsString = readRouteOutput()
routeTable = transformStringsToRouteTupleList( routesAsString )
removeRoutesFromIf( pArgv[ 1 ], routeTable )
if __name__ == '__main__':
main(sys.argv)
|
|
|
Back to top |
|
|
|