» »

skripta v pytonu

skripta v pytonu

petrusko ::

Ojla!

Praktičen problem: imam NAS ki sem si ga ugasnil, in bi ga rad na remote vklopil; ima WOL, ampak zlodja jaz nimam mac addrese; ni ga tudi na DHCPju ker ima NAS statičen IP.
Imam skripto (spodaj), ki pošlje ti. magic paket za določen IP in določeno MAC addreso.

Zdaj bi pa rabil 6 loop zank v pajtonu; ampak hudirja tega ne znam (danes bi mi prav prišlo to znanje)


#!/usr/bin/env python
import socket
s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.sendto('\xff'*6+'\x42\x42\x42\x42\x42\x42'*16, ('192.168.0.255', 9))


Pomoje bi moral narediti tole:
addr = '\x42\x42\x42\x42\x42\x42'
zdaj pa tele 42-tke v loopu menjati (od 0 do 255)
nekak takole bi moglo it
addr = ''
for num in range(0,255):
addr += '\x'+num
for num1 in range(0,255):
addr += '\x'+num1

s.sendto('\xff'*6+addr*16, ('192.168.0.255', 9))

ampak neki ne štima;

A lahko kdo pomaga :)

Špela P ::

Am.. nimam neki geekovske podlage tko da pojma nimam kaj so tile NAS,WOL,DHCP,socket in podobno :D
ampak upam da ti bo tole vseeno kaj pomagal.

Če ti Python ne požira tiste tvoje zgornje kode, men od oka zgleda k da ti nagaja tisti backslash v stringu -
tko da če slučajno dobiš nek unicode syntax error probi s tistim raw stringom al kaj je že tisto čudo
+ mislim da imaš problem tudi s seštevanjem stringa in integerja

men tole:

addr = ''
for num in range(0,255):
addr += r'\x' + str(num)
print(addr)

vrne:

>>>
\x0\x1\x2\x3\x4\x5\x6\x7\x8\x9\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x100\x101\x102\x103\x104\x105\x106\x107\x108\x109\x110\x111\x112\x113\x114\x115\x116\x117\x118\x119\x120\x121\x122\x123\x124\x125\x126\x127\x128\x129\x130\x131\x132\x133\x134\x135\x136\x137\x138\x139\x140\x141\x142\x143\x144\x145\x146\x147\x148\x149\x150\x151\x152\x153\x154\x155\x156\x157\x158\x159\x160\x161\x162\x163\x164\x165\x166\x167\x168\x169\x170\x171\x172\x173\x174\x175\x176\x177\x178\x179\x180\x181\x182\x183\x184\x185\x186\x187\x188\x189\x190\x191\x192\x193\x194\x195\x196\x197\x198\x199\x200\x201\x202\x203\x204\x205\x206\x207\x208\x209\x210\x211\x212\x213\x214\x215\x216\x217\x218\x219\x220\x221\x222\x223\x224\x225\x226\x227\x228\x229\x230\x231\x232\x233\x234\x235\x236\x237\x238\x239\x240\x241\x242\x243\x244\x245\x246\x247\x248\x249\x250\x251\x252\x253\x254

kar, če razumem prav, je tud tvoj namen?
Če pa sem čist narobe razumela kaj ti pravzaprav hočeš in kaj ti ne štima se pa opravičujem in bom od zdj naprej raje tiho :/

Lp, Špela

Zgodovina sprememb…

  • spremenila: Špela P ()

petrusko ::

NAS -> network attached storage -> po domače ena škatla povezana v router :)
WOL -> wake on lan -> protokol preko katerega lahko z nekim "magičnim paketom" poslanim preko UDP protokola zbudiš (zaženeš) računalnik/pc/napravo, ki je priključena na mrežo
DHCP -> DHCP @ Wikipedia ...

superca hvala za namig ... bom jutri programiral dalje ...

načeloma rabim nekaj podobnega:

for num in range(0,255):
addr = ''
addr += r'\x' + str(num)
for num1 in range(0,255):
addr += r'\x' + str(num1)
for num2 in range(0,255):
addr += r'\x' + str(num2)
for num3 in range(0,255):
addr += r'\x' + str(num3)
for num4 in range(0,255):
addr += r'\x' + str(num4)
for num5 in range(0,255):
addr += r'\x' + str(num5)
s.sendto('\xff'*6+addr*16, ('192.168.1.5', 9)) // ta hudir pošlje magični paket

Špela P ::

O hudo tenks za slovarček:D

jype ::

Ne loopat skoz 6 bajtov, ker je to 281474976710656 102-bajtnih (+ drobiž) paketkov in če imaš med računalnikom in NASom 4x10 giga trunk boš potreboval potencialno cel dan, da ga zbudiš.

Če poznaš proizvajalca NASa lahko s to tabelo močno zmanjšaš količino.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[python] project euler problem

Oddelek: Programiranje
151283 (835) Spura
»

ubuntu + network sharing

Oddelek: Pomoč in nasveti
221252 (1116) NeMeTko
»

python problem

Oddelek: Programiranje
131460 (1200) Isotropic
»

Wireless in Linux

Oddelek: Omrežja in internet
121153 (983) shock
»

Iščem 20"/21" LCD

Oddelek: Kaj kupiti
71338 (1252) *TV*

Več podobnih tem