Nowe posty

Autor Wątek: Odczytywanie N-tej lini pliku (C++)  (Przeczytany 10958 razy)

Offline Damian K

  • Users
  • Użytkownik
  • **
  • Wiadomości: 64
    • Zobacz profil
Odczytywanie N-tej lini pliku (C++)
« dnia: 2005-12-05, 16:34:06 »
Witajcie,
chciałbym podzielić internet na 2 komputery, wcześniej tak miałem na windowsie. Próbowałem różnych regułek masquerade iptables wypisanych w różnych tutorialach, rowniez probowalem podzielic przez firestarter

Z gory dziekuje za pomoc,
Damian

Offline Piotr Chmura

  • Administrator
  • Guru
  • *****
  • Wiadomości: 5060
    • Zobacz profil
Odczytywanie N-tej lini pliku (C++)
« Odpowiedź #1 dnia: 2005-12-05, 17:28:13 »
a ip_forward (opcja jadra) ustawiles ?

Offline Damian K

  • Users
  • Użytkownik
  • **
  • Wiadomości: 64
    • Zobacz profil
Odczytywanie N-tej lini pliku (C++)
« Odpowiedź #2 dnia: 2005-12-05, 17:32:44 »
2005-12-05 17:28:13 chmooreck napisał:

> a ip_forward (opcja jadra) ustawiles ?

nie kompilowałem sam jądra bo mam te domyślne

Offline Piotr Chmura

  • Administrator
  • Guru
  • *****
  • Wiadomości: 5060
    • Zobacz profil
Odczytywanie N-tej lini pliku (C++)
« Odpowiedź #3 dnia: 2005-12-05, 17:43:32 »
nie chodzi o kompilowanie, tylko o zalaczenie tej opcji...

a dokladnie wpisanie jedynki do odpowiedniego pliku... niestety w tej chwili nie pamietam pelnej sciezki - znajdziesz gdzies na googlach ;-)


Offline Damian K

  • Users
  • Użytkownik
  • **
  • Wiadomości: 64
    • Zobacz profil
Odczytywanie N-tej lini pliku (C++)
« Odpowiedź #4 dnia: 2005-12-05, 17:46:20 »
2005-12-05 17:43:32 chmooreck napisał:

> nie chodzi o kompilowanie, tylko o zalaczenie tej opcji...
 >
 > a dokladnie wpisanie jedynki do odpowiedniego pliku... niestety w tej chwili nie pamietam
 > pelnej sciezki - znajdziesz gdzies na googlach ;-)
 >
 >
jeśli chodzi ci o echo 1 > ... to tak

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 26
    • Zobacz profil
Odczytywanie N-tej lini pliku (C++)
« Odpowiedź #5 dnia: 2005-12-05, 17:51:14 »
jesli cie dobrze rozumiem to chcesz stworzyc mini-siec (serwer-komputer)
czyli tak:
eth0 - interfejs na net :)
eth1 - interfejs na kompa

dopisz do /etc/network/interfaces   (zakładam ze na \\"serwerze\\" masz juz skonfigurowany net)

auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0

teraz dajesz /etc/init.d/networking restart
 teraz tworzysz /etc/init.d/firewall i nadajesz mu uprawnienia do uruchomienia:
chmod +x /etc/init.d/firewall

teraz trzeba go uzupelnic
...
(kolacja, poszukaj na google :) albo niech ktos inny napisze)
...

update-rc.d firewall defaults 20
teraz odpal /etc/init.d/firewall i juz powinno smigac :)
Mam nadzieje ze chodzilo ci o cos takowego. Tak sie mi wydaje ze tu gdzies byl dokladny opis, łącznie z konfiguracją firewall\\'a , oraz tworzeniem serwera DHCP i dzielenia po adresach MAC.
jak nie znajdziesz tutaj to napewno bedzie na www.dug.net (czy jaklos tak w kazdym razie DebianUsersGang) kompletny opis

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 26
    • Zobacz profil
Odczytywanie N-tej lini pliku (C++)
« Odpowiedź #6 dnia: 2005-12-05, 17:56:38 »
Teraz załapałe,m ze to nie debian ;P ale nie przerażaj sie - zdecydowana większość jest pewnie taka sama albo bardzo podobna\\' :):)

Offline Damian K

  • Users
  • Użytkownik
  • **
  • Wiadomości: 64
    • Zobacz profil
Odczytywanie N-tej lini pliku (C++)
« Odpowiedź #7 dnia: 2005-12-06, 14:40:00 »
Pingi ida najdalej do bramki domyslnej polaczenia internetowego (z 2-giego kompa) tracerty ida wczesniej, a nawet przy tracercie pokazuje mi dns serwera a przy www nie

Offline Damian K

  • Users
  • Użytkownik
  • **
  • Wiadomości: 64
    • Zobacz profil
Odczytywanie N-tej lini pliku (C++)
« Odpowiedź #8 dnia: 2005-12-06, 15:34:41 »
2005-12-06 14:40:00 DamianK napisał:

> Pingi ida najdalej do bramki domyslnej polaczenia internetowego (z 2-giego kompa) tracerty ida
 > wczesniej, a nawet przy tracercie pokazuje mi dns serwera a przy www nie

Stronka mojego usługodawcy która jest wewnątrz sieci działa (nawet przez DNS bo mam go w sieci). Podaje tutaj jak mam skonfigurowany plik który uruchamia wszystkie komendy:
/sbin/modprobe iptable_nat
/sbin/modprobe iptable_mangle
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ipt_TTL
echo \\"1\\" > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -F
/sbin/iptables -F INPUT
/sbin/iptables -F OUTPUT
/sbin/iptables -F FORWARD
/sbin/iptables -F -t mangle
/sbin/iptables -F -t nat
/sbin/iptables -X
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -A FORWARD -p all -s 172.16.0.2/32 -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -s 172.16.0.2/32 -j SNAT --to-source (moje IP interfejsu internetowego)

Maske mam na obydwoch: 255.255.255.0 i bramke na tym drugim 172.16.0.1 (takie IP mam ustawione na interfejsie LAN) PROSZE NAJLEPIEJ O KONTAKT NA GG 4620051

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 26
    • Zobacz profil
Odczytywanie N-tej lini pliku (C++)
« Odpowiedź #9 dnia: 2005-12-05, 14:43:48 »
Potrzebuje odczytac N-tą linie pliku i zapisać ją do tablicy. Problem w tym , ze nie wiem jak odczytywac z konkretnej lini.

Offline Sebastian Chyba zartujecie

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 191
    • Zobacz profil
Odczytywanie N-tej lini pliku (C++)
« Odpowiedź #10 dnia: 2005-12-05, 14:52:29 »
2005-12-05 14:43:48 FROGER napisał:

> Potrzebuje odczytac N-tą linie pliku i zapisać ją do tablicy. Problem w tym , ze nie wiem jak
 > odczytywac z konkretnej lini.

Zainteresuj sie strumieniami iostream w szczegolnosci fstream.
Do tego strumien.ignore(); powinno Ci troche pomoc
Calosc w petli wykonujesz N-1 razy, a pozniej zapodajesz strumien.getline();

Oczywiscie obie te funkcje maja swoje parametry itp, ale w tym wypadku odsylam Cie do manuali w internecie lub podrecznikow (np. Symfonia C++ tom III).

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 26
    • Zobacz profil
Odczytywanie N-tej lini pliku (C++)
« Odpowiedź #11 dnia: 2005-12-05, 17:30:27 »
A móglby ktos zapodac kod , przenoszacy moj wskaznik czytania do konkretnej lini ? Potem juz sobie poradze.

 Myslałem nad czyms w stylu :
czytaj plik az napodkasz N-1 znak "n" badz EOF (tylko juz nie wiem czy nie powinno byc czasem "nr" ale to sie juz dopracuje :) .Czytaj linie po znkau do napotkania EOF badz znaku "n". Tylko obawiam sie ze moj sposob bedzie troche czasochłonny , jesli w pliku byloby np. 100 000 lini po 1024 znaki w kazdej. Wiec dlatego prosze o cos szybszego . O ile jest mozliwe to prosze o kod. Wystarczy, ze przeniesie mnie na koniec/poczatek lini ktora chce czytac.

Za odpowiedz z gory dziekuje

Offline jan karwowski

  • Users
  • Guru
  • *****
  • Wiadomości: 844
    • Zobacz profil
Odczytywanie N-tej lini pliku (C++)
« Odpowiedź #12 dnia: 2005-12-05, 17:56:19 »
2005-12-05 17:30:27 FROGER napisał:

> A móglby ktos zapodac kod , przenoszacy moj wskaznik czytania do konkretnej lini ? Potem juz
 > sobie poradze.
 >
 >  Myslałem nad czyms w stylu :
 > czytaj plik az napodkasz N-1 znak "n" badz EOF (tylko juz nie wiem czy nie powinno
 > byc czasem "nr" ale to sie juz dopracuje :) .Czytaj linie po znkau do napotkania
 > EOF badz znaku "n". Tylko obawiam sie ze moj sposob bedzie troche czasochłonny ,
 > jesli w pliku byloby np. 100 000 lini po 1024 znaki w kazdej. Wiec dlatego prosze o cos
 > szybszego . O ile jest mozliwe to prosze o kod. Wystarczy, ze przeniesie mnie na
 > koniec/poczatek lini ktora chce czytac.
 >
 > Za odpowiedz z gory dziekuje

To jest nie bardzo możliwe do zrobienia
w inny sposób, bo program nie widzi
pliku jako zbioru linii, ale jako zbiór
kolejnych znaków ( nie ważne, czy to
są normalne znaki alfanumeryczne,
czy znaki niedrukowalne, czy jakiekolwiek
inne).


Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 26
    • Zobacz profil
Odczytywanie N-tej lini pliku (C++)
« Odpowiedź #13 dnia: 2005-12-05, 18:02:16 »
Czyli mam rozumiec, ze moge sie spokojnie wziac za pisanie i to nie bedzie jakis superwolny algorytm :) Ale musze przynac ze myslałem, że będzie na to krótszy sposób :):) Chociaz mam jeszcze jeden pomysl :)
Napisze sobie progs uzupelniajacy / skracajacy tekst w lini do 1024 znakow(znakami ' ' (spacja)), a potem juz tez bede mial łatwe i szybki liczenie :):). A takie rozwiazanie mi wystarczy, bo rzadko kiedy tekst w 1 lini bedzie przekraczal 500 znakow :)

Co wy na to?

Offline jan karwowski

  • Users
  • Guru
  • *****
  • Wiadomości: 844
    • Zobacz profil
Odczytywanie N-tej lini pliku (C++)
« Odpowiedź #14 dnia: 2005-12-05, 18:47:06 »
2005-12-05 18:02:16 FROGER napisał:

> Czyli mam rozumiec, ze moge sie spokojnie wziac za pisanie i to nie bedzie jakis superwolny
 > algorytm :) Ale musze przynac ze myslałem, że będzie na to krótszy sposób :):) Chociaz mam
 > jeszcze jeden pomysl :)
 > Napisze sobie progs uzupelniajacy / skracajacy tekst w lini do 1024 znakow(znakami ' '
 > (spacja)), a potem juz tez bede mial łatwe i szybki liczenie :):). A takie rozwiazanie mi
 > wystarczy, bo rzadko kiedy tekst w 1 lini bedzie przekraczal 500 znakow :)
 >
 > Co wy na to?


Myślę, że ten program uzupełnaijący/skracający,
będzie bardziej spowalniał działanie całości,
niż jakbyś zrobił to poprostu licząc znaki 'n'.

Najlepiej, żebyś wykorzystał w celu czytania
znaków funkcję getc() z stdio.h,
albo funkcję read() z unistd.h
unistd.h jest dostępny tylko na systemach
*NIX, i nie jest częścią standardu C
Więc nie ma go na przykład w Dosie/Windzie

pozdrawiam