Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];

Вниз

Массивы и IP   Найти похожие ветки 

 
Michael C   (2002-03-11 17:13) [0]

Ситуация.
Есть переменные с полным адресом, есть переменные только с адресом машины, все это выбрано из файла. Так вот если адрес 198.162.33, то весь адрес кидатся в массив, точнее номеру эл-та массива присваивается адрес, ну вот так:

If S="192.168.33" then
Mas[StrToInt (A)]:= Mas[StrToInt (A)]+ StrToInt(N3);
If N="192.168.33" then
Mas[StrToInt (D)]:= Mas[StrToInt (D)]+ StrToInt(N3);


Мне нужна отобразить адрес и напротив суммарный траффик, желательно в файл,
Люди, человеки, я уже потерялся, незнаю как быть


 
Anatoly Podgoretsky   (2002-03-11 20:50) [1]

Что такое A, D, N3 и их значения, типыТипы и размерность массива Mas
Сем отличается полный адрес от адреса массива?
Массив у тебя вроде бы числовой, а адрес в строковом виде, как преобразовываешь.
Видишь сколько неизвестных переменных в твоем вопросе.


 
Michael C   (2002-03-12 09:37) [2]

A и D это номер машины, т.е. последняя цифра в IP,
S и N это соответственно входящий и исходящий траффик,
N3 это поле размер,
Из этого => что есть три столба, вх., исх. адреса, и размер-N3/
Да массив числовой, тут номер элемента массива есть номер машины(A или D). Этими четырямя строчками я складываю размер всех одинаковых адресов, или могет неправильно?
Нужно отобразить адрес и напротив суммарный траффик, желательно в файл.


 
Anatoly Podgoretsky   (2002-03-12 21:07) [3]

Так типы, и размерность массива отказываешь указать. Для суммарного трафика код правильный, больше сказать ничего нельзя, у тебя типы секретные, у меня информация по решению.


 
Michael C   (2002-03-13 15:01) [4]

Вот весь код, Анатолий выручай... private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
ResultSz,ResultSIP,ResultDIP: String;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
Var
I,Z,E,B,K,PosSIP,PosDIP,L,M,Summ: Integer;
F1,FR: TextFile;
Str,N1,N2,N3,A,D,N,S,FStr: String;
Mas: array[1..4096] of Integer;
begin
AssignFile (F1,"C:\capture_Feb_5_2002_17_4_23_760.csv");
Reset (F1);
Readln (F1,Str);
Delete (Str,1,40) ;
AssignFile (FR,"c:\report.txt");
Rewrite (FR);
//While not eof(f1) do
For b:=1 to 1000 do
Begin
Readln(F1,Str);
N1:=Str;
N2:=Str;
N3:=Str;
For i := 1 to 3 do
Begin
PosSIP := pos(",",N1);
If PosSIP > 0 then
Delete(N1,1,PosSIP);
End;

PosSIP := pos(",",N1);
If (PosSIP > 0) then
ResultSIP := copy(N1,1,PosSIP-1);

For e := 1 to 4 do
Begin
PosDIP := pos(",",N2);
If PosDIP > 0 then
Delete(N2,1,PosDIP);
End;
PosDIP := pos(",",N2);
If PosDIP > 0 then
ResultDIP := copy(N2,1,PosDIP-1);

K := Pos(",", N3);
while K > 0 do
begin
N3 := Copy(N3, K+1, Length(N3));
K := Pos(",", N3);
end;

If ResultSIP <> "0.0.0.0" then
Begin
Memo1.Lines.Add(ResultSIP);
L:= LastDelimiter(".",ResultSip);
A:= copy(ResultSIP,L+1,3);
S:= copy(ResultDIP,L-12,L-1);
End;
Memo4.Lines.Add(A);
If S="192.168.33" then
Memo7.Lines.Add(S);

If ResultDIP <> "0.0.0.0" then
Begin
Memo2.Lines.Add(ResultDIP);
M:= LastDelimiter(".",ResultDIP);
D:= copy(ResultDIP,M+1,3);
N:= copy(ResultDIP,M-12,M-1);
End;
Memo5.Lines.Add(D);
If N="192.168.33" then
Memo6.Lines.Add(N);

If (ResultSIP <> "0.0.0.0") or (ResultDIP <> "0.0.0.0") then
Memo3.Lines.Add(N3);

If S="192.168.33" then
Mas[StrToInt (A)]:= Mas[StrToInt (A)]+ StrToInt(N3);
If N="192.168.33" then
Mas[StrToInt (D)]:= Mas[StrToInt (D)]+ StrToInt(N3);

FStr := A + " , " + IntTostr(Mas[StrToInt (A)]);

Writeln (FR,FStr);


End;
CloseFile(FR);
end;



end.


 
panov   (2002-03-13 15:21) [5]

Лучше бы уж кусок информации для обработки дал из исходного файла...


 
Michael C   (2002-03-13 16:00) [6]

Да пжлста, только помогитеTimestamp,Source MAC address,Dest MAC address,Source IP address,Dest IP address,Source port,Dest port,Size
16:56:52:990,00:C0:26:31:C4:5F,00:D0:59:0F:8A:63,217.73.192.19,192.168.33.55,80,2275,971
16:56:52:990,00:D0:59:0F:8A:63,00:C0:26:31:C4:5F,192.168.33.55,217.73.192.19,2275,80,60
16:56:52:990,00:D0:59:0F:8A:63,00:C0:26:31:C4:5F,192.168.33.55,217.73.192.19,2275,80,60
16:56:52:990,00:C0:26:31:C4:5F,00:D0:59:0F:8A:63,195.34.32.68,192.168.33.55,80,2280,62
16:56:52:990,00:D0:59:0F:8A:63,00:C0:26:31:C4:5F,192.168.33.55,195.34.32.68,2280,80,60
16:56:53:050,00:D0:59:0F:8A:63,00:C0:26:31:C4:5F,192.168.33.55,195.34.32.68,2280,80,314
16:56:53:270,00:C0:26:31:C4:5F,00:D0:59:0F:8A:63,194.186.36.143,192.168.33.55,80,2272,1514
16:56:53:320,00:D0:59:0F:8A:63,00:C0:26:31:C4:5F,192.168.33.55,212.111.95.40,2265,80,62



 
Michael C   (2002-03-13 16:00) [7]

Да пжлста, только помогите...
Timestamp,Source MAC address,Dest MAC address,Source IP address,Dest IP address,Source port,Dest port,Size
16:56:52:990,00:C0:26:31:C4:5F,00:D0:59:0F:8A:63,217.73.192.19,192.168.33.55,80,2275,971
16:56:52:990,00:D0:59:0F:8A:63,00:C0:26:31:C4:5F,192.168.33.55,217.73.192.19,2275,80,60
16:56:52:990,00:D0:59:0F:8A:63,00:C0:26:31:C4:5F,192.168.33.55,217.73.192.19,2275,80,60
16:56:52:990,00:C0:26:31:C4:5F,00:D0:59:0F:8A:63,195.34.32.68,192.168.33.55,80,2280,62
16:56:52:990,00:D0:59:0F:8A:63,00:C0:26:31:C4:5F,192.168.33.55,195.34.32.68,2280,80,60
16:56:53:050,00:D0:59:0F:8A:63,00:C0:26:31:C4:5F,192.168.33.55,195.34.32.68,2280,80,314
16:56:53:270,00:C0:26:31:C4:5F,00:D0:59:0F:8A:63,194.186.36.143,192.168.33.55,80,2272,1514
16:56:53:320,00:D0:59:0F:8A:63,00:C0:26:31:C4:5F,192.168.33.55,212.111.95.40,2265,80,62



 
Anatoly Podgoretsky   (2002-03-13 22:26) [8]

Код безообразный, поэтому разбираться в нем не буду, но если сделать предположение, что разборку строки ты провел правильно, то суммарный трафик по каждой машине считаеся правильно, то есть значения A, D, S, N, N3 правильные, можно сделать только следующие замечания:

1. A и D всегда у тебя в диапазоне от 0 до 255, а размерность массива 0..4096

2. массив не инициализирован, так что значения трафика от булды, неопределено

3. всб программу надо переписать, обратив внимание на оптимальные и понятные алгоритмы, для этого сначала поработай с бумагой, распиши все хорошо, проведи расчеты на бумаге и если все получится, то только после этого приступай к реализации алгоритма.

мой совет, разбей программу на функции, то есть мухи отдельно, котлеты отдельно.


 
Michael C   (2002-03-14 10:34) [9]

Товарищи, я ведь только учусь...
Будем стараться дорогой товарисч Anatoly Podgoretsky.
Благодарб за помощь.... :)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
3-90748
skywalker
2002-03-01 11:46
2002.03.28
Oracle


3-90786
Зинец Виктор
2002-03-01 15:23
2002.03.28
Как заставить клиента MIDAS (или DCOM?) заработать?


1-90821
Alev
2002-03-08 14:52
2002.03.28
Как можно создать папку?


1-90951
d_oleg
2002-03-14 10:54
2002.03.28
Font pitch


1-90897
jenbond
2002-03-18 10:51
2002.03.28
Помоги





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский